异常都是由 Throwable 继承而来,但在下一层立即分解为两个分支:Error 和 Exception.
- Error类层次结构描述了java运行时内存耗尽或者内部错误应用程序不应该抛出这种异常
- Exception层次结构又分为 RuntimeException 和其他异常
由程序错误导致的异常 就是RuntimeException ,而如果程序本身没有问题,由于I/O错误这类的问题产生的异常 属于其他异常
- 如果出现了RuntimeException 那么一定是你的问题
javaJang.Throwabie 1.0
- Throwable( )
构造一个新的 Throwabie 对象, 这个对象没有详细的描述信息。 - Throwable(String message )
构造一个新的 throwabie 对象, 这个对象带有特定的详细描述信息。习惯上,所有派
生的异常类都支持一个默认的构造器和一个带有详细描述信息的构造器。 - String getMessage( )
获得 Throwabie 对象的详细描述信息。
怎么捕获异常
try{
…
}catch(Exception e){
…
}
- 当try 语句块类 发生异常时 就会在catch中寻找对应的异常 进行处理 。(发生异常就会直接跳到catch 语句块)
- try 只能拥有一个 而catch 可以有多个
- finally 无论发没发生异常 都需要执行finally 语句块 一般用来关闭数据库连接,释放资源 之内的操作
断言
什么是断言?
- 假设某个属性符合要求,并且代码执行依赖于这个属性。
怎么使用?
- assert 条件;
- assert 条件:表达式;
- 这两种形式都会对条件进行检测, 如果结果为 false, 则抛出一个 AssertionError 异常。
在第二种形式中,表达式将被传人 AssertionError 的构造器, 并转换成一个消息字符串。
例如 :
要想断言x 是一个非负数值
assert x >= 0;
或者将 x 的实际值传递给 AssertionError 对象, 从而可以在后面显示出来。
assert x >= 0 : x;
怎么启用和禁用断言
- 默认情况下是禁言了断言的 可以在运行程序时候用-enableassertions 或 -ea 选项启用:
例如 java -enableassertions Test - 禁用就是 -da