11.Java–throw关键字

迈不过友情╰ 2022-12-02 10:53 154阅读 0赞

11.Java–throw关键字

除了可以通过throws关键字抛出异常外,还可以使用throw关键字抛出异常。与throws有所不同的是,throw用于方法体内,并且抛出的是一个异常类对象,而throws关键字用在方法声明中,用来指明方法可能抛出的多个异常

通过throw关键字抛出异常后,还需要使用throws关键字或try…catch对异常进行处理

需要注意的是,如果throw抛出的是Error、RuntimeException或它们的子类异常现象无需使用throws关键字或try…catch对异常进行处理。

案例

  1. public class Example34 {
  2. // 定义printAge()输出年龄
  3. public static void printAge(int age) throws Exception {
  4. if (age < 0) {
  5. // 对业务逻辑进行判断,当输入年龄为负数的时候抛出异常
  6. throw new Exception("输入的年龄有误,必须是正整数!");
  7. } else {
  8. System.out.println("此人年龄为:" + age);
  9. }
  10. }
  11. public static void main(String[] args) {
  12. // 下面的代码定义了一个try...catch语句用于捕获异常
  13. int age = -1;
  14. try {
  15. printAge(age);
  16. } catch (Exception e) {
  17. System.out.println("捕获的异常信息为:" + e.getMessage());
  18. }
  19. }
  20. }

结果

在这里插入图片描述

例34中, printAge()方法对输人的年龄进行了逻辑判断,虽然输入负数在语法上能够通过编译,并且程序能够正常运行,但这显然与现实情况不符,因此需要在方法中对输入的内容进行判断,当数值小于0时,使用throw关键字抛出异常,并指定异常提示信息,同时,在方法后继续用throws关键字处理抛出的异常。

从图可以看出,对于代码中的业务逻辑异常,使用throw关键字抛出异常后,同样可以正确捕获异常,从而保证程序的正常运行。当然,throw关键字除了可以抛出代码的逻辑性异常外,也可以抛出Java能够自动识别的异常

发表评论

表情:
评论列表 (有 0 条评论,154人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C++11_关键字_Deleted

    1 背景问题 对于 C++ 的类,如果程序员没有为其定义特殊成员函数,那么在需要用到某个特殊成员函数的时候,编译器会隐式的自动生成一个默认的特殊成员函数,比如拷贝构造函数

    相关 C++11_关键字_explicit

    `explicit`是C++11中特意添加的一个关键字。通常情况下用于构造函数前面,表示显式表示,禁止构造函数的隐式转换。 为什么要这么做呢?这么做有什么好处呢? 我们先来

    相关 C++11 decltype关键字

    1.1 decltype语法 在C++11中增加了decltype关键字(表达式:decltype(exp)),用来在编译时推导出一个表达式的类型,并且不会真正计算表达式

    相关 c++11:final关键字

    > 笔记 c++引进这样一个关键字:final 通常我们不希望一个类被继承,或者不想考虑他是否合适被继承就可以在类名之后加上final关键字。 也可以定义函数的时候使用