# 异常概述
异常:程序出错了
# 异常的分类
- 编译时异常:受检异常
- 运行时异常:非受检异常
# 异常体系
- Error:严重问题,不需要处理
- Exception:异常类,程序本身可以处理
- RuntimeException:编译器不检查,犯错后再改
- 非 RuntimeException:编译期需要修改,不改过不了编译
# JVM 的默认处理方法
- 把异常信息名称,原因,位置输出在控制台
- 程序停止运行
# 异常处理
# try...catch...finally...
try { | |
// 异常代码 | |
} catch (/* 异常类名 变量名 */) { | |
// 异常处理代码 | |
} finally { | |
// 执行清除操作 无论如何 finally 里面的代码都会执行 | |
} |
# throws
方法 throws 异常名; |
延迟处理异常:把异常抛出去,用的时候再处理
# Throwable 成员方法
# getMessage()
返回 throwable 的详细信息字符串(简短)
// 定义 | |
public String getMessage(); | |
// 使用 | |
System.out.println(e.getMessage()); |
# toString()
返回可抛出的简短描述
// 定义 | |
public String toString(); | |
// 使用 | |
System.out.println(e.toString()); |
# printStackTrace()
把错误信息输出再控制台(完整)
// 定义 | |
public void printStackTrace(); | |
// 使用 | |
e.printStackTrace(); |
# 自定义异常
public class ExceptionName extends Exception { | |
// 无参构造 | |
public ExceptionName () {} | |
// 带参构造 | |
public ExceptionName (String message) { | |
super(message); | |
} | |
} |
throw:手动抛出自定义异常对象