知识点一、多重catch引发多种类型的异常排列catch 语句的顺序:先子类后父类 发生异常时按顺序逐个匹配只执行第一个与异常类型匹配的catch语句二、异常分类异常分为运行时异常和检测异常运行时异常:代码编译期,异常不会触发,在代码运行的过程中抛出检测异常:代码在编译期就会触发异常,必须显示处理以后才能让代码通过编译器的编译。throws 可以让检测异常通过编译器的编译三、自定义异常1、手动继承Exception2、手动实现Exception中所有构造方法
1 package day20190311;
2 /**
3 * 多重catch语句
4 * @author Administrator
5 *
6 */
7 public class ExceptionDemo02 {
8
9 public static void main(String[] args) {
10 try{
11 System.out.println("try代码块执行!");
12 int i=4/0;
13 String name=null;
14 System.out.println(name.length());
15 }catch(ArithmeticException e){
16 System.out.println("处理算数异常!");
17 //e.toString()获取的信息包括异常类型和异常详细消息
18 System.out.println(e.toString());
19 //e.getMessage()只是获取了异常的详细消息字符串
20 System.out.println(e.getMessage());
21 //打印异常堆栈信息
22 e.printStackTrace();
23 }catch(NullPointerException e){
24 System.out.println("处理空指针异常!");
25 }
26 //处理多个异常,先子类后父类
27 catch(Exception e){
28 System.out.println("父类处理异常!");
29 }finally{
30 System.out.println("finally代码块执行!");
31 }
32 }
33 }
![](https://img2018.cnblogs.com/blog/1257924/201903/1257924-20190311184424326-81105508.png)
|