异常结构如下所示:
我们直入重点:
1)异常和错误的区别是什么?
异常能够被本身处理,错误是无法处理的
2)异常包括可查异常和不可查异常:
可查异常:
正确的程序在运行中,很容易出现清理可容的异常情况;除去RuntimeException类以及子类的异常,其余的Exception类及其子类的异常都是>可查异常,这种异常的特点就是java编译器会去检查它,也就是说,当程序中出现此类异常,要么用try-catch去捕捉它,要么用throws子句声明抛出它,否则编译不通过.
不可查异常:
RuntimeException类及子类,Error类及子类都是不可查异常;不处理也会编译通过;
Exception这种异常分为两大类运行时异常和非运行时异常,程序中应该尽力处理这种异常
运行时异常:
都是RuntimeException类及其子类异常,都是不可查异常,程序可选择处理也可以不选择处理
非运行时异常:
是RuntimeException以外的异常,类型上都术语Exception类及其子类.从程序语法上都是必须处理的异常,否则不会编译通过.
3)捕捉异常:try-catch-finaly
比如当除数为0时引发的ArithmeticException异常
4)抛出异常:throws 和throw
throws语句用在方法定义声明该方法要抛出的异常类型,多个异常可用,分隔
throw语句总是出现再函数体中,用来抛出一个throwable类型的异常,是异常对象.
我们直入重点:
1)异常和错误的区别是什么?
异常能够被本身处理,错误是无法处理的
2)异常包括可查异常和不可查异常:
可查异常:
正确的程序在运行中,很容易出现清理可容的异常情况;除去RuntimeException类以及子类的异常,其余的Exception类及其子类的异常都是>可查异常,这种异常的特点就是java编译器会去检查它,也就是说,当程序中出现此类异常,要么用try-catch去捕捉它,要么用throws子句声明抛出它,否则编译不通过.
不可查异常:
RuntimeException类及子类,Error类及子类都是不可查异常;不处理也会编译通过;
Exception这种异常分为两大类运行时异常和非运行时异常,程序中应该尽力处理这种异常
运行时异常:
都是RuntimeException类及其子类异常,都是不可查异常,程序可选择处理也可以不选择处理
非运行时异常:
是RuntimeException以外的异常,类型上都术语Exception类及其子类.从程序语法上都是必须处理的异常,否则不会编译通过.
3)捕捉异常:try-catch-finaly
比如当除数为0时引发的ArithmeticException异常
4)抛出异常:throws 和throw
throws语句用在方法定义声明该方法要抛出的异常类型,多个异常可用,分隔
throw语句总是出现再函数体中,用来抛出一个throwable类型的异常,是异常对象.