关于throws和throw

关于throws和throw

请问老师 如果我在某方法里既使用trycatch捕捉了该方法内throw的对象 又在该方法定义时声明了throws 是不会有编译错误的 但是问题是 是会在方法内部捕捉不会往上反 还是不在方法内捕捉往上反?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,

1、对于同学的第一个问题,是不会编译报错的。

2、对于第二个问题,它会在方法中捕获进行向上抛出。

例如如下的例子:

1
2
3
4
5
6
7
8
9
10
11
class MyMath {
    public int div(int x, int y) throws Exception {
        int result = 0;
        try {
            result = x / y; // 除法计算
        catch (Exception e) {
            throw e; // 向上抛
        }
        return result;
    }
}
1
2
3
4
5
6
7
8
9
class TestDemo {
    public static void main(String[] args) {
        try {
            System.out.println(new MyMath().div(100));
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • TOUU_JP 提问者 #1
    如果在MyMath类的catch并没有throw 只是输出语句呢 那不是方法的throws没有意义了?
    2020-03-07 17:20:13
  • 好帮手慕酷酷 回复 提问者 TOUU_JP #2
    同学你好,是的,你的理解是正确的。没有throw 只是输出语句,throws就没有意义了。如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
    2020-03-07 17:22:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码