没有异常的程序是没有的。
异常不等于错误,错误往往是硬件或运行环境问题。
异常分为编译时异常(CheckedException)和运行时异常(RuntimeEx.)
异常是被一个方法抛出的对象,当一个方法抛出异常时,该方法从调用栈中被弹出,同时产生的异常对象抛给了栈中的前一个方法。
对于异常处理,方法有三种选择:1、捕获这个异常,不让他沿着调用栈继续向下抛出;
2、捕获这个异常,并继续向下抛出;
3、不捕获这个异常,从而导致方法从调用栈中被弹出,异常对象继续抛给调用栈下面的方法。
try{ }catch{ }捕获异常;可以接多个catch块。
如果捕获的异常无继承关系,顺序可以交换;如果有继承关系,子类异常应在父类前面。
printStactTrace( )方法打印异常堆栈信息。
如果一块代码不管是否发生异常抛出,都要被执行,用关键字 finally。
try,catch,finally都不允许单独存在,catch\finally前面必须有try。
方法声明中抛出异常用关键字throws;只有在抛出编译时异常时,调用者才会受到警告,抛出运行时异常,调用者不会在编译期被警告。
throw 用在方法体中,执行语句。后跟异常对象,发生异常抛出动作;
throws 用于方法声明。后跟异常类名,表明方法有可能抛出某种或某几种类型的异常,仅在编译期提示调用者。
自定义异常类 继承 Exception:
1.创建一个类继承于 Exception
2.添加构造方法和普通方法
3.在一个方法中抛出异常
4.在另一个方法中捕获并处理异常