分类Java自定义异常捕获自定义异常类的格式如下:自定义异常类的调用格式如下:可能引发异常的代码如下:本题完整代码如下:自定义异常Exception根据业务需要针对不同类型的异常打印不同类型的日志Java自定义异常捕获写一个程序将字符串转换成数字。请使用try-catch语句来处理转换过程中可能出现的异常。JAVA提供自定义异常类。尽管您尝试使用定义的类,但有时您仍然使用自定义的异常类。自定义异常类的格式如下:class/*自定义异常类名*/extendsException{public/*自定义异常类名*///相当于重写了它的构造函数{super("/*输出信息*/");}}自定义异常类的调用格式如下:try{//可能引发异常的代码;}catch(Exceptione)//捕获异常并放入类e中{//处理异常}finally{//最后处理后执行的代码}可能出现异常的代码写成如下:publicstaticintStringtoInt(Strings)throwsTooLong、ZeroLength、InvalidChar的写法和普通函数一样,输入一个字符串,返回一个整数,类型是本题要求的,后面是throws和异常类的名字可能会出现。从这里我们也可以看出,throws是针对classes的,throw是针对instances的。{intlen,i,ans=0;布尔标志=真;len=s.length();对于(i=0;i<=len-1;i++){if(s.charAt(i)<'0'||s.charAt(i)>'9'){flag=false;休息;}}if(s.length()>=6){thrownewTooLong();//抛出异常}elseif(s.length()==0){thrownewZeroLength();}elseif(flag==false){thrownewInvalidChar();}for(i=0;i<=len-1;i++){ans=ans+(s.charAt(i)-'0')*((int)Math.pow(10,len-i-1));}返回答案;}本题完整代码如下:异常类型有:空字符、超出长度的字符串、包含非法字符的字符串。导入java.util.*;classInvalidCharextendsException{publicInvalidChar(){super("该字符串包含非法字符,无法转换为整数");}}classTooLongextendsException{publicTooLong(){super("字符串长度过长,无法转为整数");}}classZeroLengthextendsException{publicZeroLength(){super("长度为零,不能转换为整数");}}publicclassExceptionTester{publicstaticintStringtoInt(Strings)throwsTooLong,ZeroLength,InvalidChar{intlen,i,ans=0;布尔标志=真;len=s.length();对于(i=0;i<=len-1;i++){if(s.charAt(i)<'0'||s.charAt(i)>'9'){flag=false;休息;}}if(s.length()>=6){thrownewTooLong();}elseif(s.length()==0){thrownewZeroLength();}elseif(flag==false){thrownewInvalidChar();}for(i=0;i<=len-1;i++){ans=ans+(s.charAt(i)-'0')*((int)Math.pow(10,len-i-1));}返回答案;}publicstaticvoidmain(Stringargs[]){inta;字符串;扫描仪cin=new扫描仪(System.in);System.out.println("请输入一个字符串");小号=cin.nextLine();尝试{a=StringtoInt(s);}catch(Exceptione){System.out.println(e.toString());返回;}System.out.println(a+"\n"+"没有捕获到异常");返回;}}常见的异常处理代码有e.toString()、e.getMessage()、e.printStackTrace()等自定义异常Exception根据业务需要打印不同类型的异常日志包com.cestbon.exception;publicclassRpcExceptionextendsException{/****/privatestaticfinallongserialVersionUID=6554142484920002283L;}只是继承重写了Exception方法~以上是个人经验,希望可以给大家参考
