Java中的异常处理及对数据的正确性检查

目录

一、问题引入

二、异常处理

机制一:try-catch-finally

机制二:throws + 异常类型

三、总结


一、问题引入

C语言中,对于数据正确性检查和数据异常的处理通常是这样的:

利用 if 判断和 scanf 的返回值,完成对数据的正确性检查和数据格式输入错误的问题。那么java的异常处理是否是这样的呢?

 很显然 java 有着自己独特的异常处理机制。

二、异常处理

    首先,作为一门面向对象编程语言,构成java程序的基础是类。Java 对异常事件

进行了分类,下图是Java异常层次结构的示意图:

可以看出所有异常类都是继承 Throwable 类而来的,但往下又分为两种:Error类和Exception。

    Error:

    Java虚拟机无法解决的严重问题。 如: JVM系统内部错误、 资源耗尽等严重情况。一般我们不考虑编写代码进行处理。

    Exception:

    其它因编程错误或偶然的外在因素导致的一般性问题, 可以使用针对性的代码进行处理。其中又分为两类,一类是IOException ,另一类是RuntimeException。由程序错误导致的异常属于RuntimeException异常类,由外部因素如像文件读写等I/O 异常属于IOException异常。

    此外,我们还可以自定义异常类,去详细的描述异常信息。

    异常处理机制

    对异常事件分了类,那么下一步就是对异常事件的处理和响应机制。

    机制一:try-catch-finally

   格式如下:

try 代码块里面是可能会出现异常的代码,catch代码块里面是对异常进行处理的代码finally是无论都会执行的代码需要注意的是,try 里面抛出了异常会立马执行catch里面的代码,执行完catch的代码后不会继续运行try里面的代码,以及catch代码块可以有多个。我们看一个例子:

    当Scanner 读取了一个不符合数据格式的数据时会抛出 InputMismatchException异常,然后执行catch代码块里面的代码

机制二:throws + 异常类型

throws +异常类型,写在方法的声明处,此时此方法执行时, 可能会抛出的类型,对于数据正确性的检查我们可以使用该机制。需要注意的是 :throws的方式只是将异常抛给了方法的调用者,并没有真正将异常处理掉。所以在调用该方法的地方还是需要try - catch处理。结合自定义异常类,我们看一个例子

    当输入的学号为负时,testId 会抛出一个自定义异常,catch代码块会提示用户输入正确的数据范围。

三、总结


    java 对异常进行了分类,我们更需要考虑对Exceprion类进行编程处理,处理异常的机制 为 try - catch - finally 机制。相对于类c编程语言的异常处理,我感觉java 的异常处理显然更加的优雅,能够减少代码的冗余。

整理时间:2022-06-01

猜你喜欢

转载自blog.csdn.net/m0_64198455/article/details/128470018