异常处理 --错误!==异常
什么是异常?
异常是程序中的一些错误,但并不是所有的错误都是异常最直接的方式就是看提示:
- 错误:缺少";"会提示
java.lang.Error- 异常:
System.out.println(11/0)会提示java.lang.ArithmeticException
造成异常的原因:
- 用户输入了非法数据 -->
IllegalArgumentException
- 输入格式不合法(如要求是数字却输入字符串):
NumberFormatException- 要求非空但是未输入:
NullPointerException- 输入超出合法范围(如年龄为负数): 优先
IllegalArgumentException
- 要打开的文件不存在 -->
FileNotFoundException- 网络通信时连接终端 -->
SocketException
异常方法:
| 序号 | 方法及说明 |
|---|---|
| 1 | public String getMessage()返回关于发生的异常的详细信息。这个消息在Throwable 类的构造函数中初始化了。 |
| 2 | public Throwable getCause()返回一个 Throwable 对象代表异常原因。 |
| 3 | public String toString()返回此 Throwable 的简短描述。 |
| 4 | public void printStackTrace()将此 Throwable 及其回溯打印到标准错误流。 |
| 5 | public StackTraceElement [] getStackTrace()返回一个包含堆栈层次的数组。下标为0的元素代表栈顶,最后一个元素代表方法调用堆栈的栈底。 |
| 6 | public Throwable fillInStackTrace()用当前的调用栈层次填充Throwable 对象栈层次,添加到栈层次任何先前信息中。 |
为什么要进行异常处理?
可能会导致程序崩溃,内存泄露,数据丢失等问题
捕获异常:
使用
try和catch关键字try { // 程序代码 }catch(ExceptionName e1) { //Catch 块 }
多重捕获异常:
try{ // 程序代码 }catch(异常类型1 异常的变量名1){ // 程序代码 }catch(异常类型2 异常的变量名2){ // 程序代码 }catch(异常类型3 异常的变量名3){ // 程序代码 }
多异常合并捕获:
try { // 可能抛出多个不同类型异常的代码 } catch (异常类型1 | 异常类型2 | 异常类型3 异常变量) { // 统一处理 }
浙公网安备 33010602011771号