【Java学习】异常处理

异常的分类

1.Error类java.lang.Error类是程序无法处理的错误,表示应用程序运行时出现的重大错误,例如JVM运行时出现的OutOfMemoryError以及Socket编程时出现的端口占用等程序无法处理的错误,这些错误都需交由系统进行处理。

2.Exception类java.lang.Exception类是程序本身可以处理的异常,可分为运行时异常与编译异常。运行时异常是指RuntimeException及其子类的异常。这类异常在代码编写的时候不会被编译器检测出来,可以不捕获,但是程序员也可以根据需要捕获这类异常。常见的RuntimeException有NullpointerException(空指针异常)、ClassCastException(类型转换异常)、IndexOutOfBoundsException(数组越界异常)等。编译异常是指RuntimeException以外的异常。在编译时编译器会提示这类异常需要捕获,如果不进行捕获则会出现编译错误。常见的编译异常有IOException(流传输异常)、SQLException(数据库操作异常)等。

常见异常

  • ArithmeticException(数学运算异常)。例如程序中出现了除数为0的运算,就会抛出该异常。

  • NullPointerException(空指针异常)。例如当应用试图在要求使用对象的地方使用了null时,就会抛出该异常。

  • NegativeArraySizeException(数组大小为负值异常)。例如当使用负的数组大小值创建数组时,就会抛出该异常。

  • ArrayIndexOutOfBoundsException(数组下标越界异常)。例如当访问某个序列的索引值小于0或者大于或等于序列大小时,就会抛出该异常。

  • NumberFormatException(数字格式异常)。当试图将一个String转换为指定的数字类型,而该字符串不满足数字类型的格式要求时,就会抛出该异常。

  • InputMismatchException(输入类型不匹配异常)。它由Scanner类抛出,当读取的数据类型与期望类型不匹配时,就会抛出该异常。

异常处理

try catch 语句

try语句中出现了异常之后,异常语句之后的代码将不再执行,而是跳到catch处执行处理,从而保证程序即使出现了异常也可以正常地执行完毕。

throws

当使用throws关键字定义一个方法的时候,调用此方法时,不管是否会产生异常,都应该采用异常处理格式进行处理,以保证程序的稳定性。在以后编写的很多程序中都会出现用throws声明的方法,这时就必须强制用户使用try…catch进行处理。

断言语句

断言语句(assert)是专用于代码调试的语句,通常用于程序不准备使用捕获异常来处理的错误。在程序调试时,加入断言语句可以发现错误,而在程序正式执行时只要关闭断言功能即可。

发布了136 篇原创文章 · 获赞 18 · 访问量 4194

猜你喜欢

转载自blog.csdn.net/xcdq_aaa/article/details/105070162