Try Catch进⾏异常捕获
try{
// 可能发⽣异常的代码
}catch(AExceptionName e){
//出异常的时候处理理
}catch(BExceptionName e){
}fianall{
}
- try后⾯跟⼀个或多个catch块,或一个finally块,或两者的组合
- catch 不能独⽴于 try ⽽单独存在
- 如果代码没有对应的异常类进行捕获,则默认打印异常堆栈
finally和多重异常捕获
多重捕获
⼀个 try 代码块后⾯跟多个 catch 代码块的情况就叫多重捕获
try{
// 可能发⽣异常的代码
}catch(ExceptionName1 e1){
//出异常的时候处理
}catch(ExceptionName2 e2){
//出异常的时候处理
}
代码中发⽣异常,异常被抛给第一个catch块, 如果不匹配则继续往下⼀个catch进⾏传递
finally关键字
⽤来创建在 try 代码块后⾯执行的代码块
- finally 代码块中的代码总会被执⾏
一般⽤于资源回收释放等操作
try{
// 可能发⽣生异常的代码
}catch(ExceptionName1 e1){
//出异常的时候处理理
}finally{
//肯定执⾏行行的代码
}
或者
try{
// 可能发⽣生异常的代码
}finally{
//肯定执⾏行行的代码
}
三者的组合
try,catch和finally块有两种可能的组合
try catch捕获
- throws 声明异常 往外抛出
- 语法:throws⼦句放在⽅法参数列表的右括号之后,⼀个方法可以声明抛出多个异常,
- 多个异常之间⽤逗号隔开。
try catch中捕获了异常,处理方法public class Main {
public static void readChar() throws
IOException,RemoteException {
int input = System.in.read();
}