java.lang.Throwable
类是Java语言中错误Error和异常Exception的超类java
Error
类主要用于描述Java虚拟机没法解决的严重错误.一般没法编码解决.如JVM挂掉了Exception
类主要用于描述因编程错误或偶然外在因素致使的轻微错误,一般能够编码解决.如:0做为除数等java.lang.Exception
类是全部异常的超类.主要分为如下两种程序员
RuntimeException
-运行时异常,也叫做非检测性异常IOException
和其它异常-其它异常,也叫做检测性异常.所谓检测性异常就是指在编译阶段都能被编译器检测出来的异常RuntimeException
类的主要子类编程
ArithmeticException
类 - 算术异常ArrayIndexOutOfBoundsException
类 - 数组下标越界异常NullPointerException
类 - 空指针异常ClassCastException
类 - 类型转换异常NumberFormatException
类 - 数字格式异常if
条件判断来避免异常的发生if
条件判断会致使程序的代码加长,臃肿,可读性差try{ 编写可能发生异常的代码; } catch(异常类型 引用变量名){ 编写针对该类异常的处理代码; } ... finally{ 编写不管是否发生异常都要执行的代码; }
catch
分支时,切记小类型应该放在大类型的前面finally
一般用于进行善后处理,如:关闭已经打开的文件等try{ a; b; // 可能发生异常的语句 c; }catch(Exception e){ d; }finally{ e; }
在某些特殊状况下, 有些异常不能处理或不便于处理时, 就能够将该异常转移给该方法的调用者, 这种方法就叫异常的抛出.数组
当方法执行时出现异常, 则底层生成一个异常类对象抛出, 此时异常代码后续的代码就再也不执行编码
访问权限 返回值类型 方法名称(形参列表) throws 异常类型1, 异常类型2, ... {方法体;}
指针
public void show() throws IOException{}
子类重写的方法不能抛出更大的异常, 不能抛出平级不同的异常, 但能够抛出同样的异常, 更小的异常, 以及不抛出异常code
当须要在程序中表达年龄不合理的状况时, 而Java官方又没有提供这种针对性的异常, 此时就须要程序员自定义异常加以描述orm
xxxException
异常类, 继承Exception
类或者子类throw new 异常类型(实参)
在须要抛出异常的加入上述语句便可.对象
如throw new AgeException("年龄不合理");
继承