当前位置: 首页 > 科技观察

教小姐姐学习Java:Throw和Throws

时间:2023-03-21 12:34:32 科技观察

《二哥,你能说说throw和throws这两个关键字的区别吗?三姐问道。"throw关键字用于主动抛出异常;一般情况下,当除数为0时,程序会主动抛出ArithmeticException;但是如果我们想在除数为1时抛出ArithmeticException,我们可以使用throw关键字主动抛出一个例外,”我说。thrownewexception_class("errormessage");语法也很简单,throw关键字后面跟着new关键字,还有异常类型和参数。例如。publicclassThrowDemo{staticvoidcheckEligibilty(intstuage){if(stuage<18){thrownewArithmeticException("18岁以下禁止看电影");}else{System.out.println("请慎看电影!!");}}publicstaticvoidmain(Stringargs[]){checkEligibilty(10);System.out.println("Happyweekend..");}}这段代码运行时会抛出如下错误:Exceptioninthread"main"java.lang.ArithmeticException:Under18岁,禁止看电影,和扔电影完全不一样。”我说,“异常处理机制这一节,我们讲了checkedexception和uncheckedexception,即checkedexception和uncheckedexception;对于checkedexception,如果你不处理,编译器会提示你。"Class.forName()方法在执行过程中可能会遇到java.lang.ClassNotFoundException异常,是checked异常,如果不处理,IDEA会提示你,要么声明在方法签名上,要么放在try-在catch中。“那你在什么情况下使用throws而不是try-catch?”三妹问道。这种情况可以使用try-catch来处理。》我回答了。publicvoidmyMethod(){try{//可能会抛出异常}catch(ArithmeticExceptione){//算术异常}catch(NullPointerExceptione){//NullPointerException}}"但是假设有几个类似myMethod()的方法,如果每个方法都加上try-catch,会很繁琐。代码会变得又臭又长,可读性差。我继续说。"一种解决方法是在方法签名上使用throws关键字声明可能抛出的异常,然后在调用方法的地方使用try-catch处理。"publicstaticvoidmain(Stringargs[]){try{myMethod1();}catch(ArithmeticExceptione){//算术异常}catch(NullPointerExceptione){//空指针异常}}publicstaticvoidmyMethod1()throwsArithmeticException,NullPointerException{//方法签名上的声明异常}”好吧,让我总结一下throw和throws的区别,三姐记住。》1)throws关键字用于声明异常,作用类似于try-catch;throw关键字用于显式抛出异常。2)throws关键字后面跟异常名称;throw关键字后跟exception.example的对象。抛出算术异常;thrownewArithmeticException("算术异常");3)throws关键字出现在方法签名上,throw关键字出现在方法体中。4)throws关键字可用于声明多个异常,以逗号分隔;而throw关键字一次只能抛出一个异常。“三妹,现在清楚了吗?”我抬起头,看着三妹说道。“好,二哥,我这下就记住了,你真棒!”本文转载自微信公众号“沉默王二”,可通过以下二维码关注。转载本文请联系沉默王二公众号。