前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 基础(十一) 异常

Java 基础(十一) 异常

作者头像
Rikka
发布2022-01-19 18:09:14
1760
发布2022-01-19 18:09:14
举报
文章被收录于专栏:rikkarikka

1. 捕获异常的机制

代码语言:javascript
复制
try {
    //可能产生异常的代码
} catch (Type1 id1) {
    //处理 Type1 异常的代码
} catch (Type2 id2) {
    //处理 Type2 异常的代码
}

异常机制的最大好处: 清晰地分开了处理正常的业务逻辑代码和遇到情况时的代码 Java 中用try{}来包裹可能出现异常的代码块, 并用 catch(Type id){}捕捉并处理异常.

流程图

2. 捕捉到的异常

catch(type id){}的代码块中, 可以调用 id 的 一些方法, 比如getMessage(), printStackTrace() 来获得相关的信息. 如果在当前层面上无法全部处理, 可以通过 throw 再次将异常抛向上一层

  • 有风险、可能会抛出异常的代码
代码语言:javascript
复制
//必须声明它会抛出 BadException
public void takeTisk() throws BadException {
    if(abandonallHopes) {
        //创建 Exception 对象并抛出
        throw new BadException();
    }
}
  • 调用该方法的程序代码
代码语言:javascript
复制
public void crossFingers() {
    //如果不用 try - catch包裹起来, 就必须声明 throws BadException  
    try {
        anObject.takeRisk();
    } catch (BadException ex) {
        System.out.println("Aaargh");
        ex.printStackTrace();
    }
}

3. 什么东西可以扔出来

  • 任何继承了 Throwable 类的对象
  • Exception 类继承了 Throwbale
    • throw new Exception();
    • throw new Exception(“Something”);

4. catch 是怎样捕捉异常的

  • 抛出子类的异常会被捕捉父类异常的 catch 捕捉到, 如 catch(Exception e){}会捕捉到所有的异常

运行时刻异常

  • 像 ArrayIndexOutOfBoundsException 这样的异常不需要声明

5. 异常遇到继承

父类中的某个 Method 在子类中覆盖时, 必须保证子类中的同名方法不声明更多的异常抛出 子类的构造器中必须声明父类的全部异常

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 捕获异常的机制
    • 流程图
    • 2. 捕捉到的异常
    • 3. 什么东西可以扔出来
    • 4. catch 是怎样捕捉异常的
      • 运行时刻异常
      • 5. 异常遇到继承
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档