异常(Exception)
Posted 上进小青年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常(Exception)相关的知识,希望对你有一定的参考价值。
异常
Java运行过程中发生的异常可以分为两类:
1.错误(Error):JVM系统内部错误,资源耗费等严重情况
2.异常(Exception):其他因编程错误或偶然的外在因素导致的一般性问题
- 可以对下列情形在方法定义中抛出异常
(1) 方法中调用了一个会抛出“已检查异常”的方法
(2) 程序运行过程中发生了错误,并且用throw子句抛出一个”已检查异常”
a.对负数开平方根
b.空指针访问
c.试图读取不存在文件
d.网络连接中断
e.分母为0
PS:不要抛出:从Error派生的那些异常
JAVA异常处理机制
- JAVA程序的执行过程中如出现异常,会自动生成一个异常类对象,该异常对象将被提交给JAVA运行时系统,这个过程称为抛出(throw)异常----主动
- 当JAVA运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常----被动
- 如果JAVA运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的JAVA程序也将退出
- 程序员通常只能处理Exception,而对错误Error无能为力
常见异常:
- RuntimeException
- ArithmeticException:数学计算异常
- NullPointerException:空指针异常
- NegativeArraySizeException:负数组长度异常
- ArrayIndexOutOfBoundsException:数组索引越界异常
- ClassNotFoundException:类文件未找到异常
- ClassCastException:造型异常
- IOException
- FileNotFoundException:文件未找到异常
- EOFException:读写文件尾异常
- MalformedURLException:URL格式错误异常
- SocketException:Socket异常(套接字)
- 算数异常类:ArithmeticException
- 空指针异常类:NullpointerException
- 类型强制转换异常:ClassCastException
- 数组负下标异常:NegativeArrayException
- 数组下标越界异常:ArrayIndexOutOfBoundsException
- 违背安全原则异常:Secturity Exception
- 文件已结束异常:EOFException
- 文件未找到异常:FileNotFoundException
- 字符串转换为数字异常:NumberFormatException
- 操作数据库异常:SQLException
- 输入输出异常:IOException
- 方法未找到异常:NotSuchMethodException
- 抽象方法错误异常java.lang.AbstractMethodError
- 断言错误异常java.lang.AssertionError
- 类循环依赖错误异常java.lang.ClassCircularityError
- PS:当一个异常没有在当前的try-catch中处理的话将会抛给调用它的方法(throws)
- PS:当一个异常一直没有能够被处理最后又回到主方法的时候,程序将会停止运行
-
如果程序需要catch块中访问异常对象的相关信息,可以通过调用catch后异常形参的方法来获得。当JAVA运行时决定调用某个catch块来处理异常对象时,会将该异常对象赋给该catch块后的异常参数,程序就可以通过该参数获得异常的相关信息啦
getMessage():返回该异常的详细描述字符串
printStackTrace():将 该异常的错误栈信息输出屏幕上
printStackTrace(PrintStream s):将该异常的跟踪栈信息输出到指定的输出流
getStackReace():返回该异常的跟踪栈信息
以上是关于异常(Exception)的主要内容,如果未能解决你的问题,请参考以下文章
Java 检查异常(checked exception)和未检查异常(unchecked exception)区别理解