基础知识

异常处理

2017-03-04  本文已影响1人  Suavitygogo

结构:

Throwable:

异常捕获:

可嵌套使用:

try{监控区代码块}【可选:catch(异常Exception,可捕获多个,从细到粗){}】finally{不管是否有异常捕获都会执行的代码块}

finally语句块将在方法返回之前被执行。在以下4种特殊情况下,finally块不会被执行:

1)在finally语句块中发生了异常。

2)在前面的代码中用了System.exit()退出程序。

3)程序所在的线程死亡。

4)关闭CPU。

执行过程:

抛出异常的两种方式

a.方法内部直接抛出throw new MyException)();

b.方法名后把异常丢给上一级:throws Exception; 如果一直将异常抛到最顶层,就会由JVM自己处理。

1. Exception:程序本身可以处理的异常

a.不受编译器检查的异常类:运行期异常RuntimeException及其子类,可处理也可不处理,不受编译器检查。

b.受编译器检查的异常类:可预见的异常,编译器要求必须处置的异常,try-catch捕获或者抛出异常throws给上一级,否则无法编译成功。

c. 异常处理常见方法:

getCause():返回抛出异常的原因。如果 cause 不存在或未知,则返回 null。

getMeage():返回异常的消息信息。

printStackTrace():对象的堆栈跟踪输出至错误输出流,作为字段 System.err 的值。

2. Error:程序无法处理的错误,表示运行应用程序中较严重问题(JVM出现的问题)

自定义异常:继承extends Exception

上一篇 下一篇

猜你喜欢

热点阅读