JAVA_异常处理
2021/10/20 20:43:06
本文主要是介绍JAVA_异常处理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
异常
try catch
- .将可能抛出FileNotFoundException 文件不存在异常的代码放在try里
- .如果文件存在,就会顺序往下执行,并且不执行catch块中的代码
- . 如果文件不存在,try 里的代码会立即终止,程序流程会运行到对应的catch块中
- e.printStackTrace(); 会打印出方法的调用痕迹
public static void main(String[] args) { File file = new File("E:\\文本文档.txt"); try { System.out.println("```"); new FileInputStream(file); } catch (FileNotFoundException e) { System.out.println("系统文件不存在"); e.printStackTrace(); } }
使用异常的父类进行catch
public static void main(String[] args) { File file = new File("E:\\文本文档.txt"); try { System.out.println("```"); new FileInputStream(file); } catch (Exception e) { //FileNotFoundException是Exception的子类,使用Exception也可以catch住FileNotFoundException System.out.println("系统文件不存在"); e.printStackTrace(); } }
多异常捕捉办法
办法是把多个异常,放在一个catch里统一捕捉
这种方式从 JDK7开始支持,好处是捕捉的代码更紧凑,不足之处是,一旦发生异常,不能确定到底是哪种异常,需要通过instanceof
进行判断具体的异常类型
public static void main(String[] args) { File file = new File("E:\\文本文档.txt"); try { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); simpleDateFormat.parse("2022-10-20.200"); new FileInputStream(file); } catch (Exception e) { //FileNotFoundException是Exception的子类,使用Exception也可以catch住FileNotFoundException if (e instanceof FileNotFoundException) System.out.println("不存在");; if (e instanceof ParseException) System.out.println("日期解析错误"); e.printStackTrace(); } }
finally
无论是否出现异常,finally
中的代码都会被执行
public static void main(String[] args) { File file = new File("E:\\文本文档.txt"); try { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); simpleDateFormat.parse("2022-10-20.200"); new FileInputStream(file); } catch (Exception e) { //FileNotFoundException是Exception的子类,使用Exception也可以catch住FileNotFoundException if (e instanceof FileNotFoundException) System.out.println("不存在");; if (e instanceof ParseException) System.out.println("日期解析错误"); e.printStackTrace(); }finally { System.out.println("无论是否存在 都会执行"); } }
throws
主方法调用method1
method1
调用method2
method2
中打开文件
method2
中需要进行异常处理
但是method2
不打算处理,而是把这个异常通过throws抛出去
那么method1
就会接到该异常。 处理办法也是两种,要么是try catch
处理掉,要么也是抛出去。
method1
选择本地try catch
住 一旦try catch
住了,就相当于把这个异常消化掉了,主方法在调用method1
的时候,就不需要进行异常处理了
public static void main(String[] args) { method1(); } private static void method1() { try { method2(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private static void method2() throws FileNotFoundException { File f = new File("d:/LOL.exe"); System.out.println("试图打开 d:/LOL.exe"); new FileInputStream(f); System.out.println("成功打开"); }
throw和throws的区别
throws与throw这两个关键字接近,不过意义不一样,有如下区别: 1. throws 出现在方法声明上,而throw通常都出现在方法体内。 2. throws 表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某个异常对象。
这篇关于JAVA_异常处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南