CodeGym/Java 课程/Java 语法/关于多重捕获的多项任务

关于多重捕获的多项任务

可用

“嗨,阿米戈。昨天我有点喝多了,所以恐怕我搞砸了你的任务。希望你不要生气,我会全部完成。这是对你好。来吧。”

3
任务
Java 语法,  第 9 级课程 8
已锁定
异常只捕获异常。
我们有一种方法。它会抛出两个继承 Exception 的异常和两个继承 RuntimeException 的异常:NullPointerException, ArithmeticException, FileNotFoundException, URISyntaxException.任务:捕获 NullPointerException 和 FileNotFoundException,而不捕获 ArithmeticException 或 URISyntaxException。如何做到这一点呢?
3
任务
Java 语法,  第 9 级课程 8
已锁定
捕获一组异常
有 3 个连续继承 Exception 的异常(Exception1 extends Exception,Exception2 extends Exception1,而 Exception3 extends Exception2)。在程序中,你会发现 public static void method1() throws Exception1、Exception2、Exception3 方法。任务:编写一个捕获如下三个异常的 catch 块:Exception1、Exception2 和 Exception3。
6
任务
Java 语法,  第 9 级课程 8
已锁定
捕获自定义异常
或许你觉得多层异常结构比较棘手。实际上,异常很简单,并且是 Java 最有价值的部分之一。对于第 9 级的学员,这个结论可能很难让人信服。处理异常看起来令人超级困惑,这是因为学员还没有经验,仅此而已。让我们无畏前进:在本次任务中,你需要捕获自定义异常。
3
任务
Java 语法,  第 9 级课程 8
已锁定
捕获已检查异常
CodeGym 秘密中心的经验告诉我们,如果方法中抛出(发生)ClassNotFoundException 或 FileNotFoundException,那么程序员仅需在方法签名中指出它们。这些就是已检查异常。在 handleExceptions 方法中处理异常并在屏幕上显示。
3
任务
Java 语法,  第 9 级课程 8
已锁定
捕获未检查异常
“另外还有一种异常,即 RuntimeException 和继承它的类。这种异常和类不必捕获,因为没被查到。这是个迷。它们的出现很难预测,并且不需要在 throws 子句中指出。”CodeGym 课程是这么教的。现该在 handleExceptions 方法中处理所有未检查的异常了。
3
任务
Java 语法,  第 9 级课程 8
已锁定
相识是缘分,连异常都不例外
过去,异常曾让年轻的科学家和程序员夜不能寐。今天,它们仍是 CodeGym 学生的噩梦。让我们尝试创建自己的异常。为此,我们创建了 MyException、MyException2、MyException3 和 MyException4 类。让我们的类继承其他类,以便产生任何两个已检查异常和任何两个未检查异常。
评论 (11)
  • 受欢迎
你必须先登录才能发表评论
Mosum
级别 10 ,Nanjing,China
30 八月, 14:20
在Java中,异常处理机制将异常分为两大类:已检查异常(checked exceptions)和未检查异常(unchecked exceptions)。这两类异常的主要区别在于编译器如何处理它们。 已检查异常(Checked Exceptions): 这些异常是编译器强制要求处理的异常。 已检查异常通常是可预见且应用程序应该能够从这种异常恢复的情况。 如果一个方法可能抛出已检查异常,那么它必须通过throws关键字声明这些异常,或者在方法内部用try-catch块来捕获并处理这些异常。 IOException 和 SQLException 是已检查异常的例子。 未检查异常(Unchecked Exceptions): 这些异常通常是由于程序错误引起的,比如空指针访问、数组越界等。 编译器不要求必须处理未检查异常,因为这些问题通常应该在编写代码时避免。 未检查异常继承自 RuntimeException 类或 Error 类。 NullPointerException, ArrayIndexOutOfBoundsException, 和 ClassCastException 是未检查异常的例子。 简单来说,已检查异常是那些编译器会检查是否已经处理的异常,而未检查异常则是编译器不会强制你处理的异常。处理已检查异常可以让你的应用更加健壮,因为它迫使你在设计阶段就考虑到可能出现的问题;而未检查异常则更多地是为了捕捉那些本不应该发生的逻辑错误。
WL Lu
级别 14 ,Stuttgart,Germany
10 四月, 14:13
还是我聪明 全部验证下载正确的解决方法
Qin-1999
级别 22
4 一月, 02:45
搞砸了,但都是对你好
Super Ego
级别 14 ,Wu Han,China
2 三月 2023, 03:29
这第9级和第8级难度一个地一个天
Qin-1999
级别 22
4 一月, 02:45
是!!!我太认同了!!
拔萝卜滴🐰
级别 22 ,chengdu,China
Expert
6 二月 2023, 14:04
最后一题需要借助课程4的思维导图
Bob
级别 20 ,伯明翰,美国
3 七月 2022, 12:55
day6
阿狼
级别 32 ,Zhengzhou,China
12 六月 2022, 03:22
day 9
ZZZNET
级别 16 ,United States of America
31 八月 2021, 06:56
/* 异常只捕获异常。*/ catch (NullPointerException | FileNotFoundException ignore) 为什么这样写?且改动后,会出错。常用格式catch (NullPointerException e){ }catch (FileNotFoundException e){ }
士兴 彭
级别 15 ,Chongqing,China
5 五月 2022, 09:29
那个竖杠表示 或 的意思 详情 见
烂泥扶不上墙机器人
级别 9 ,Chongqing,China
21 四月, 08:54
得益于 Java 7 版本引入的能力,我们还可以将捕获异构异常合并到一个块中,使代码更加紧凑和可读。如下例子 public String input() { String s = null; try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) { s = reader.readLine(); if (s.equals("")) { throw new MyException("The string cannot be empty!"); } } catch (IOException | MyException e) { System.out.println(e.getMessage()); } return s; }