知识点
一、多重catch
引发多种类型的异常
排列catch 语句的顺序:先子类后父类
发生异常时按顺序逐个匹配
只执行第一个与异常类型匹配的catch语句
二、异常分类
异常分为运行时异常和检测异常
运行时异常:代码编译期,异常不会触发,在代码运行的过程中抛出
检测异常:代码在编译期就会触发异常,必须显示处理以后才能让
代码通过编译器的编译。throws 可以让检测异常通过编译器的编译
三、自定义异常
1、手动继承Exception
2、手动实现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 }