美文网首页
Java - 异常

Java - 异常

作者: sunboximeng | 来源:发表于2018-06-04 23:50 被阅读3次

异常的作用:得知程序出错的位置(stackTrace)、出错原因(可以传字符串进去进行说明)。
异常也是类,构造器可以传入参数,作为说明。具有体系结构,具有属性和方法(printStackTrace、getMessage、toString),可以被继承从而自定义异常类。
发生异常就是创建了一个异常对象并抛出,此时程序的执行就会终止。

Throwable

  • Error(程序的绝症)
  • Exception(程序的小毛病)
    • RuntimeException
    • 编译期异常(Exception中除了RuntimeException之外的异常,并没有统一的名字)

为什么运行期异常可以不处理,而编译期异常必须处理?这两种异常有本质区别吗?

  • Runtime exceptions比较常见,如果必须处理,代码就会非常臃肿。
  • Runtime exceptions are supposed to be fatal programming errors(空指针、数组越界、类型转换失败、分母为零), so it's better to let the program crash right away.
  • One of the distiguishing features of a run-time exception is, that it is unexpected (you don't really expect there to be a bug in your program, right?)

异常的处理:

  • throws:自己不处理,向 caller 抛出异常(注意不要丢掉字母 s
  • try - catch - finally:捕获异常并处理
    处理之后就不会报错,程序不会终止,后面的代码也会继续执行。
    只要jvm没有停止,即使catch 里有return,也会执行finally里面的代码。
    子类不能抛出父类没有的异常

自定义异常
自定义的异常类只要写构造器就好,传入对异常的说明信息即可。打印stackTrace可以由继承来的方法完成。
利用 if 判断和 throw 关键字抛出自定义的类。

相关文章

网友评论

      本文标题:Java - 异常

      本文链接:https://www.haomeiwen.com/subject/besusftx.html