ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

头歌实践教学平台:Java面向对象-Java中的异常(三)

头歌实践教学平台:Java面向对象-Java中的异常(三) 第3关抛出异常任务描述本关任务抛出程序的异常。相关知识为了完成本关任务你需要掌握1. 如何使用throw和throws关键字。throws 关键字上一小节我们学习了如何处理捕获异常但是我们有时候想偷个懒不自己处理这些异常可不可以呢答案是可以的我们可以将自己不想处理的异常交给别人来处理怎么实现呢很简单我们只需要用throws关键字抛出该异常即可。例如这个时候我们发现IDE报错了提示我们这里有异常要处理但是如果我们不想处理就可以这样可以发现test方法内部没有报错了但是调用test方法的地方报错了。是什么原因呢抛出异常就像我们平常所说的“甩锅”总有一个人要背锅在Java中也一样异常最终总是要被处理或者被捕获的所以我们如果在方法的括号后面抛出一个异常那么该方法的调用者是必须要捕获这个异常或者将这个异常继续抛出的。所以上面的错误就会有两种解决办法。第一种捕获异常第二种把“锅”甩给Java虚拟机throw 关键字throw关键字的作用是主动抛出异常首先我们来看系统自动抛出异常public static void main(String[] args) {int a 10;int b 0;System.out.println(a/b);}运行这段代码系统会自动抛出java.lang.ArithmeticException异常。这段程序使用throw关键字也可以实现public static void main(String[] args) {int a 10;int b 0;if(b 0){throw new ArithmeticException(/ by zero);}System.out.println(a/b);}可以发现两段程序的运行结果都类似throw是语句抛出一个异常一般是在代码块的内部当程序出现某种逻辑错误时由程序员主动抛出某种特定类型的异常。注意使用throw关键字主动抛出检测性异常的时候在方法名上必须使用throws表明调用这个方法可能存在要抛出的异常。举个例子ArithmeticException属于运行时异常是在运行时检测的所以上述代码编译是能通过的而FileNotFoundException是属于检测性异常是在编译之前就需要处理的所以第二段程序要加上throws才能通过编译。编程要求请仔细阅读右侧代码根据方法内的提示在Begin - End区域内进行代码补充具体任务如下异常的抛出和处理。测试说明补充完代码后点击测评平台会对你编写的代码进行测试当你的结果与预期输出一致时即为通过。预期输出该文件不存在。开始你的任务吧祝你成功package step3;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;public class Task {/********* Begin *********/// 声明抛出FileNotFoundExceptionpublic static void main(String[] args) throws FileNotFoundException {test();}// 声明抛出FileNotFoundExceptionpublic static void test() throws FileNotFoundException {File file new File(abc);if(!file.exists()){ // 判断文件是否存在// 文件不存在则抛出文件不存在异常throw new FileNotFoundException(该文件不存在);}else{FileInputStream fs new FileInputStream(file);}}/********* End *********/}有任何问题都可以随时关注私信
返回列表