Java Top.

使用Spring 5和Spring Boot 2开始,通过学习春天课程:

>>查看课程

1.概述

Java例外分为两大类:检查异常和未选中的异常。在本文中,我们将提供有关如何使用它们的代码样本。

2.检查例外

一般来说,被检查的异常表示程序控制范围之外的错误。例如,构造函数fileInputStream.抛出filenotfoundException.如果输入文件不存在。

Java验证编译时检查的异常。

因此,我们应该使用抛出关键字声明检查异常:

私有静态void checkedExceptionWithThrows()抛出filenotfoundException {file file = new file(“not_existing_file.txt”);fileInputStream Stream = new fileInputStream(文件);}

我们也可以使用试着抓块处理已选中的异常:

私有静态void checkedExceptionWithTryCatch(){file file = new file(“not_existing_file.txt”);尝试{fileInputStream Stream = new fileInputStream(文件);catch(filenotfoundexception e){e.printstacktrace();}}

一些常见的检查例外在Java是IoException.sqlexception., 和parseexception.

例外班级是检查异常的超类。因此,我们可以创建自定义检查的异常通过扩展例外

公共类不正确FileNameException扩展了异常{public frorrectfilenameexception(string errormessage){super(errormessage);}}

3.未经检查的例外

如果程序抛出未选中的异常,它会反映程序逻辑内部的一些错误。例如,如果我们将一个数字划分为0,Java将抛出arithmeticexception.

私有静态void divideByZero(){int numerator = 1;int denominator = 0;int结果=分子/分母;}

Java不会在编译时验证未选中的异常。exproemore,我们不必在一个方法中宣布未经检查的异常抛出关键词。虽然上面的代码在编译时没有任何错误,但它会抛出arithmeticexception.在运行时。

一些常见的未经检查的例外在Java是空指针异常ArrayIndexoutofBoundSexception., 和IllegalArgumentException.

runtimeexception.类是所有未经检查的异常的超类。因此,我们可以创建一个自定义未选中的异常通过扩展runtimeexception.

公共类nulloremptyException扩展了Runtimeexception {public nulloremptyexception(string errormessage){super(errormessage);}}

4.何时使用被检查的异常和未经检查的异常

在Java中使用异常是一种很好的做法,以便我们可以将错误处理代码与正则代码分开。但是,我们需要确定要投掷哪种异常。这Oracle Java文档提供有关何时使用检查的异常和未选中的例外情况的指导:

“如果客户可以合理地预期从例外恢复,请使其成为检查的异常。如果客户端无法从异常中恢复任何操作,请使其成为未经检查的异常。“

例如,在我们打开文件之前,我们可以首先验证输入文件名。如果用户输入文件名无效,我们可以抛出自定义检查异常:

if(!IscorRectFilename(文件名)){抛出新的不正确FileNameException(“文件名不正确:”+ filename);}

通过这种方式,我们可以通过接受另一个用户输入文件名来恢复系统。但是,如果输入文件名是空指针或是空字符串,则意味着我们在代码中有一些错误。在这种情况下,我们应该抛出未经检查的异常:

if(filename == null || filename.isusemaly()){抛出新的nulloremptyException(“文件名为null或空”。);}

结论

在本文中,我们讨论了检查和未经检查的异常之间的差异。我们还提供了一些代码示例来显示何时使用已选中或未选中的异常。

一如既往,可以找到本文中的所有代码在github上

Java底部

使用Spring 5和Spring Boot 2开始,通过学习春天课程:

>>查看课程
评论在本文上关闭!