Java异常处理详解

异常机制

1.思考:什么是异常/h3>

软件程序在运行过程中,可能会遇到例如用户输入不合你要求、文件不存在、内存满了等异常问题,称为Exception。异常指程序运行中出现的不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常发生在程序运行期间,它影响了正常的程序执行流程。

2.常见的三种类型异常:

  • 检查性异常:最具代表性的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。 例如要打开一个不存在的文件时,一个异常就发生了,这些异常在编译时不能被简单的忽略。
  • 运行时异常:运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在被编译时被忽略。就好比两个没有方法体的方法相互调用,我们由于知道程序是怎样运行的,因此这类异常我们可以一眼看出。
  • 错误Error:错误与异常不同,是属于脱离程序员控制的问题。例如,当栈溢出时,一个错误就发生了,他们在编译时也检查不到的。

3.异常体系结构

Java异常处理详解

例二:异常的级别区分

例三:try-catch补充

例四:主动抛出异常

自定义异常

使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需要继承Exception类即可。

在程序中使用自定义异常类:大体分为以下几个步骤

  1. 创建自定义异常类。
  2. 在方法中通过throw关键字抛出异常对象。
  3. 如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;或者在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。
  4. 在出现异常方法的调用者中捕获并处理异常。

创建自定义异常类,通过继承Exception类实现:

另外创建一个类,对自定义的异常类进行测试:

运行结果如下:

Java异常处理详解

总结:

  • 处理运行异常时,采用逻辑去合理规避同时辅助try_catch处理(不至于程序突然卡死)。
  • 在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常。
  • 对于不确定的代码,也可以加上try-catch,处理潜在的异常。
  • 尽量去处理异常,切记不要只是简单的调用PrintStackTrace()去打印输出。
  • 具体如何处理异常,可以使用判断条件去增加处理的代码块,要根据不同的业务需求和异常类型去决定。
  • 尽量添加finnly语句块去释放占用的资源(如Scanner等IO流)。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树来源:0尼可乐0

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月22日
下一篇 2021年2月22日

相关推荐