关于throws和throw

关于throws和throw

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

正在回答

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

1回答

同学你好,

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

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

例如如下的例子:

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;
	}
}
class TestDemo {
	public static void main(String[] args) {
		try {
			System.out.println(new MyMath().div(10, 0));
		} 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下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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