Java中抓捕异常的方法
1 .一个try对应一个catch
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 try { 2 方法体; 3 } catch (单个异常){ 4 异常处理; 5 }
2 .一个try对应多个catch
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 try { 2 方法体; 3 } catch (异常一){ 4 异常处理; 5 }catch( 异常二){ 6 异常处理; 7 }
3 .try...catch...finally(finally里面的代码一定执行)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 try { 2 方法体; 3 } catch (异常){ 4 异常处理; 5 }finally{ 6 释放资源(一般指释放流和数据库资源); 7 }
4 .try...finally(直接释放资源)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 try { 2 方法体; 3 } finally { 4 释放资源; 5 }
5 .try(){}...catch{} (JDK1.7以后直接释放资源)
1 在try的后面增加一个小括号(),在括号中定义流对象,那么这个流对象的作用域就在try中有效,try中的代码执行完毕,自动把对象释放,不用写finally 2 格式 3 try(//定义流对象多个使用分号;隔开){ 4 //肯能发生异常的代码 5 }catch(异常类型 异常变量){ 6 //异常的处理变量 7 } 8 //可以使用try-with-resource语句,该语句确保了每个资源在语句结束时关闭,所谓的资源(resource)是指程序完成后,必须要关闭的对象。
测试代码
1 public static void main(String[] args) { 2 try ( 3 // 1.1 new 4 FileOutputStream fw = new FileOutputStream(" jpg\2 .jpg"); 5 //1.2new 6 FileInputStream fr = new FileInputStream("C:\users\admin\Desktop\2.jpg"); 7 ) { 8 // 2. write 9 int len = 0; 10 while ((len = fr.read()) != -1) { 11 fw.write(len); 12 } 13 } catch (IOException e) { 14 //异常的处理逻辑 15 e.printStackTrace(); 16 } 17 }