美文网首页
异常基础:throws(4)

异常基础:throws(4)

作者: 归来的良人 | 来源:发表于2016-03-18 00:05 被阅读62次

我们将异常基础:异常捕获及自定义异常(2)里的Person类的setAge()方法改一下,让该方法将异常抛出throws,而不catch。
public void setAge(int age)throws AgeException {
if(age<=0 || age>=110){

            throw new AgeException(age);
        
    }else{
        
        this.age = age;
    }
}

public class ExceptionTest {
public static void main(String[] args) {
Person p = new Person();
Person p1 = new Person();
try {
p1.setAge(120);
} catch (Exception e) {
System.out.println(e.toString());
}
try {
p.setAge(60);
System.out.println("正确年龄:"+p.getAge());
} catch (AgeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

在调用该方法时,调用者所载方法需要将该异常处理,或继续向上throws,像这样将异常一层层抛出,由最后一层处理该异常,或最后抛给main方法,有JVM处理,使异常形成一个链,叫做异常链。

补充:throw与throws的区别?
答:
1、throws出现在方法函数头;而throw出现在函数体。
2、throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异 常,执行throw则一定抛出了某种异常。
3、两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。最好使用try{}catch(){}将异常处理。

注意:
如果一个方法可能出现受可查异常,要么用try-catch语句捕获,要么用throws子句声明将它抛出,否则会导致编译错误
当抛出了异常,该方法的调用者才须处理或者重新抛出该异常。当方法的调用者无力处理该异常的时候,应该继续抛出,而不是随便catch该异常。

相关文章

  • 异常基础:throws(4)

    我们将异常基础:异常捕获及自定义异常(2)里的Person类的setAge()方法改一下,让该方法将异常抛出thr...

  • Java面向对象之异常(throw与throws)

    一、基础概念 1、throw和throws的区别: 位置不同:throws用在函数上,后面跟的是异常类,可以跟多个...

  • 03.异常的抛出

    throws方式处理异常 A:throws使用:权限修饰符 返回值类型 方法名(形参列表) throws 异常类...

  • 寒假10:异常

    异常描述: 例子: 如果时RuntimeException,可以throws也可以throws

  • 16_异常

    ======================抛异常 throw 例子 =========声明异常throws 例子...

  • 9,异常

    throw throws try_catch 自定义异常 throw是语句抛出一个异常。 throws是方法可...

  • throw和throws的区别

    1、Throw用于方法内部,Throws用于方法声明上2、Throw后跟异常对象,Throws后跟异常类型3、Th...

  • try/catch与throws异常捕捉

    方法声明throws Exception,意味着方法调者处理异常。 perform() throws JSONEx...

  • Java面试题(异常)

    74. throw 和 throws 的区别? throws是用来声明一个方法可能抛出的所有异常信息,throws...

  • Java基础-异常(6)

    74. throw 和 throws 的区别? throws是用来声明一个方法可能抛出的所有异常信息,throws...

网友评论

      本文标题:异常基础:throws(4)

      本文链接:https://www.haomeiwen.com/subject/pebclttx.html