在方法中使用throws是没用的吗?

时间:2018-04-02 17:08:00

标签: java

我是初学者,所以请不要使用硬或高级术语。 我尝试在方法中使用throws然后将其删除,并注意到如果我在调用方法时在main中处理它,它确实没有任何区别。

public Triangle(int side1, int side2, int side3) throws Exception{
            if (side1 <= 0 || side2 <= 0 || side3 <= 0)
                throw new IllegalArgumentException("Sides can only be positive numbers");
            this.side1 = side1;
            this.side2 = side2;
            this.side3 = side3;}





public static void main (String  args []) {
            try {
            Triangle obj = new Triangle (0,1,1) ;
            }catch (Exception e) {
                System.out.println("Caught");
            }

我甚至尝试在方法中除以0而不使用throws,如果我在调用方法时使用try和catch,仍然能够在main中处理异常。

如果我想在其他地方处理异常(例如main方法),何时需要使用具有函数的throws?

2 个答案:

答案 0 :(得分:0)

序幕: 例外有两种类型UncheckedRuntimeExceptionChecked Exception。检查RuntimeException的子类的每个异常都是未选中的。除以零会生成未经检查的异常。找不到文件是一个经过检查的例外。

现在让我们深入探讨您的问题 - 如果您希望调用者处理它,方法应该声明抛出。约定不是处理RuntimeExceptions,因为可以通过更好的编程来避免它们。

同样是快速代码审查,避免使用throws Exception,这告诉调用者您可以预期任何异常,而是指定调用者应该知道的确切异常或异常列表。

答案 1 :(得分:0)

在编写方法时使用

Throws来声明有问题的方法抛出特定的异常。与已检查的例外相反。 reference to throws