异常处理机制
-
异常处理的抓抛模型
- 抓:可以理解为异常的处理方式:1、try-catch-finally 2、throws
- 抛:程序在运行过程中,一旦出现异常,那么就会在异常代码处生成一个对应异常类的对象,然后抛出此对象,随后的代码不在执行
-
-
运行时异常和编译时异常
- 运行时异常,因为处理了和不处理打印一样,所以一般运行时异常一般不处理
- 编译时异常:因为不处理的话编译无法通过,那么编译时异常一定需要处理
-
try/catch/finally
1.2.
- catch中常用的两种异常处理信息:getMessage(),printStackTrace
- 作用域的问题,Try中的变量出了try结构无法使用
5.
-
throws +异常类型
-
-
一般抛到main方法就不要继续跑了 通过try catch处理
-
throws抛出异常后,后续代码无法执行,try catch可以继续执行
-
throws只是将异常交给了调用者,try catch是真正的处理异常
-
-
方法重写中的异常理解
-
开发中如何选择异常处理方式
- 1、如果父类方法没有抛出异常,那么子类重写方法有异常 那么必须try catch处理
- 2、如果几个方法有依次调用关系,那么一般在最后一个方法try catch处理,其余方法抛出异常
-
手动抛出异常
- 在抛模型中,有两种方式:第一种 自动生成异常对象。第二种 手动生成异常对象并抛出
- throw抛出异常规则
- 如果是抛出的是运行时异常,那么可能无法显示处理
- 如果是抛出的是编译时异常 那么必须手动在去抛出异常
- 案例:比如compareTo方法,如果类型不匹配,自己返回一个0有歧义,此时手动抛出异常最好
4.
-
用户自定义异常类
- 继承运行时异常类那么可能自己无法显示处理
- 继承Exception 自己可以手动处理
-