首页 > 代码库 > 异常(Exception)

异常(Exception)

异常

Java运行过程中发生的异常可以分为两类:

  1.错误(Error):JVM系统内部错误,资源耗费等严重情况

  2.异常(Exception):其他因编程错误或偶然的外在因素导致的一般性问题

  1. 可以对下列情形在方法定义中抛出异常

          (1)    方法中调用了一个会抛出“已检查异常”的方法

          (2)    程序运行过程中发生了错误,并且用throw子句抛出一个”已检查异常”

                      

a.对负数开平方根

b.空指针访问

c.试图读取不存在文件

d.网络连接中断

e.分母为0

PS:不要抛出:从Error派生的那些异常

JAVA异常处理机制

  1. JAVA程序的执行过程中如出现异常,会自动生成一个异常类对象,该异常对象将被提交给JAVA运行时系统,这个过程称为抛出(throw)异常----主动
  2. 当JAVA运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常----被动
  3. 如果JAVA运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的JAVA程序也将退出
  4. 程序员通常只能处理Exception,而对错误Error无能为力

常见异常:

  1. RuntimeException
    1. ArithmeticException:数学计算异常
    2. NullPointerException:空指针异常
    3. NegativeArraySizeException:负数组长度异常
    4. ArrayIndexOutOfBoundsException:数组索引越界异常
    5. ClassNotFoundException:类文件未找到异常
    6. ClassCastException:造型异常
  2. IOException
    1. FileNotFoundException:文件未找到异常
    2. EOFException:读写文件尾异常
    3. MalformedURLException:URL格式错误异常
    4. SocketException:Socket异常(套接字)
      1. 算数异常类:ArithmeticException
      2. 空指针异常类:NullpointerException
      3. 类型强制转换异常:ClassCastException
      4. 数组负下标异常:NegativeArrayException
      5. 数组下标越界异常:ArrayIndexOutOfBoundsException
      6. 违背安全原则异常:Secturity Exception
      7. 文件已结束异常:EOFException
      8. 文件未找到异常:FileNotFoundException
      9. 字符串转换为数字异常:NumberFormatException
      10. 操作数据库异常:SQLException
      11. 输入输出异常:IOException
      12. 方法未找到异常:NotSuchMethodException
      13. 抽象方法错误异常java.lang.AbstractMethodError
      14. 断言错误异常java.lang.AssertionError
      15. 类循环依赖错误异常java.lang.ClassCircularityError
      16. PS:当一个异常没有在当前的try-catch中处理的话将会抛给调用它的方法(throws)
      17. PS:当一个异常一直没有能够被处理最后又回到主方法的时候,程序将会停止运行
      18. 如果程序需要catch块中访问异常对象的相关信息,可以通过调用catch后异常形参的方法来获得。当JAVA运行时决定调用某个catch块来处理异常对象时,会将该异常对象赋给该catch块后的异常参数,程序就可以通过该参数获得异常的相关信息啦

        getMessage():返回该异常的详细描述字符串

        printStackTrace():将 该异常的错误栈信息输出屏幕上

        printStackTrace(PrintStream s):将该异常的跟踪栈信息输出到指定的输出流

        getStackReace():返回该异常的跟踪栈信息

异常(Exception)