Exception异常类

Exception异常类代表了java中所有的异常情况,其父类是Throwable类,所有的异常类实际上都是有Throwable类派生出来的。Throwable类有两个子类
分别为Error类和Exception类
Error类 
此类主要用来显示java运行时错误及运行时系统本身有关的错误,这一类错误会造成严重的后果,且不会被普通程序捕获或抛出
Exception类
此类表示的是所有可以被程序捕获并且可以被恢复的错误,根据错误的原因,Exception分为两种类型:
运行时异常(RuntimeException):是指程序编写不正确
非运行时异常(Non-RuntimeException) :是指由一些以外情况引发的异常,必须通过try-catch语句捕获或由throws抛出,否则编译错误
Exception对象有几个方法:
public String toString() :返回描述当前异常对象信息的字符串
public String getMessage() :返回描述当前异常对象的详细信息
public void  printStackTrace() :显示异常栈跟踪信息,包括异常的类型,性质,栈层次及程序出现的位置


管理异常
1.捕获异常
此操作是由try-catch语句来实现的,catch语句可以有多个,分别用于处理不同类型的异常
2.throws抛出异常
如果没有使用try-catch 语句结果来捕获发生的异常,或者在执行某个方法的过程中发生异常,但并不想在当前方法中进行异常处理
java运行将这个异常抛出,然后由    上层"调用"方法  捕获该异常并进行处理,异常抛出可由 throws 或throw来实现
throws关键字通常出现在方法的声明中,用来指定该方法可能抛出的异常,如果可能有多个异常抛出,可以使用逗号 进行分割
String str() throws IOException ;   public static int [] arrayInput() throws ArrayIndexOutOfBoundsException ;
throw 关键字一般用于方法的内部,用于抛出一个异常类对象
抛出异常过程可分为三个步骤:首先要确定在程序执行过程中可能发生什么类型的异常,然后创建这些异常类的实例(例如使用new运算符进行实例创建)
最后使用throw语句将异常抛出
一旦异常被抛出后,throw语句后面的程序代码将不会被执行

断言
断言是软件开发中一种常用的调试方式,很多开发语言都支持这种机制,断言的基本思想是:对一个boolean表达式进行检查,一个正确的程序
必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出
断言主要有两种形式:
1.assert Expression1
其中Expression1是一个结果为布尔值的表达式,如果该表达式为真,则断言为真,系统不会做任何事,如果为假,系统会抛出一个AssertionError
例如:assert sysError1
2.assert Excpression1:Expression2
其中Expression1是一个布尔型表达式,Expression2 是用于断言失败后的提示信息,如果断言失败该值被转化为对应的字符串,并显示出来
assert sysError:"Error";
断言的启用和禁用