一、异常的分类
1、检查性异常:例如要打开一个不存在文件时,一个异常就发生了,编译时会报错
2、运行时异常:java程序运行时发生的异常,编译时不会报错,比如数组索引越界
3、错误: 错误不是异常,在编译也检查不到,例如当栈溢出时,一个错误就发生了
二、继承结构
三、常见的异常类
1、检查性异常:
2、运行时异常:
四、异常处理
1、捕获:
try{
// 程序代码
}catch(异常类型1 异常的变量名1){
// 程序代码
}catch(异常类型2 异常的变量名2){
// 程序代码
}finally{
// 程序代码
}
注意下面事项:
扫描二维码关注公众号,回复:
2647136 查看本文章
- catch 不能独立于 try 存在
- 在 try/catch 后面添加 finally 块并非强制性要求的
- try 代码后不能既没 catch 块也没 finally 块
- try, catch, finally 块之间不能添加任何代码
- 其中多catch子类在前,父类在后
- 在catch中有return的情况下,finally依然会执行,若finally中也有return,则catch中的return不会执行
2、抛出:
方法中:若方法中抛运行时异常,声明中可不抛,运行时无侵入性
public void deposit(double amount) throws RemoteException
{
throw new RemoteException();
}
方法声明:
public void withdraw(double amount) throws RemoteException,
InsufficientFundsException
{
// Method implementation
}
五、 自定义异常
1、如果希望写一个检查性异常类,则需要继承 Exception 类
2、如果你想写一个运行时异常类,那么需要继承 RuntimeException 类