当程序运行出现异常时,会退出程序结束运行而不至于让程序崩溃。
所有异常的根类是java.lang.Throwable,其下有两个子类:Error和Exception。
Error是程序无法处理的错误,表面系统JVM处于不可恢复的崩溃状态,此时错误与代码书写无关。
如:内存资源不够时,将出现OutOfMemeoryError。
Exception是程序本身能够处理的异常。Exception是所有异常类的父类,通常异常分为RuntimeException(运行时异常)、CheckedException(已检查异常)。
捕获异常的关键词:try--catch--finally
try {可能出现异常的语句} catch (异常类类名 e) {...} catch (异常类类名 e) {...} finally {...}
try后面包含可能出现异常的语句。
try语句至少包含一个catch语句或一个finally语句。
Throwable类的默认方法:
toString(): 显示异常类类名及出现异常的原因。
getMessage(): 显示出现异常的原因。
printStackTrace(): 跟踪异常事件发生时堆栈的内容。
在异常处理后一般都会执行的语句放在finally中,如:关闭文件流、断开数据库连接等。
要点:
抛出异常不是在出现异常时才出现的,而是代码中定义的出现异常,使用throw语句抛出异常。
[访问修饰符] class 异常类类名 extends Exception { [访问修饰符] 返回值类型 方法名(参数列表) throws 异常类1[, 异常类2] { ... } ... }
要点:
throw是抛出异常的关键字。
throws是声明方法时可能出现的异常类。
(1)用途
用于调试,相当于一个if判断。
(2)用法
断言在程序中一般处于关闭状态,若想要使用,则在编译后添加参数即可。
java -ea 主类类名
(3)语法
当bool表达式为False时,在断言语句处停止并输出提醒语句;当bool表达式为True时,不做出放行。
assert bool表达式:提醒语句;