JAVA入门之异常笔记(34)( 二 )


JAVA入门之异常笔记(34)
文章图片
3、printStackTrace——把异常信息输出
packageTEXT;publicclassDemo{publicstaticvoidmain(Stringargs){System.out.println("开始");intarr={1,2,3};try{System.out.println(arr[3]);}catch(Exceptione){//System.out.println("数组索引出界");e.printStackTrace;//把异常信息输出//System.out.println(e.getMessage);//异常的原因//System.out.println(e.toString);//异常类名以及异常原因}System.out.println("结束");}}
JAVA入门之异常笔记(34)
文章图片
JAVA中的异常被分为两大类:编译异常和运行异常 , 也被称为受检异常和非受检异常所有的RuntimeException类及其子类被称为运行时异常 , 其他的异常都是编译时异常
编译时异常:必须显示处理 , 否则程序就会发生错误 , 无法通过编译
运行时异常:无需显示处理 , 也可以和编译时异常一样处理
packageTEXT;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassDemo_1{publicstaticvoidmain(Stringargs){method;method2;}//运行时异常publicstaticvoidmethod{try{intarr={1,2,3};System.out.println(arr[3]);}catch(Exceptione){e.printStackTrace;}}//编译时异常publicstaticvoidmethod2{try{Strings="2020-09-01";SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");Dated=sdf.parse(s);//这里报错只是为了说可能有异常System.out.println(d);}catch(ParseExceptione){e.printStackTrace;}}}
JAVA入门之异常笔记(34)
文章图片
六、自定义异常
在我们编写程序的时候 , 会遇到各种各样的异常 , 但是 , 并不是所有的异常都是JAVA实现封装成对象的 , 因此自定义异常的作用就出来了 , 在自定义异常类中通过编写新的方法来处理相关异常
那么我们怎么创建属于自己的异常呢?我们只需要在建立异常的时候 , 继承Exception或者RuntimeException即可
JAVA入门之异常笔记(34)
文章图片
packageTEXT_1;/*自定义分数异常*/publicclassScoreExceptionextendsException{publicScoreException{}publicScoreException(Stringmessage){super(message);}}
packageTEXT_1;/*老师对象类*/publicclassTeacher{publicvoidcheckScore(intscore)throwsScoreException{if(score<0||score>100){//thrownewScoreException;//抛出自定义异常对象 , 但是一般不给空thrownewScoreException("你给的分数有误 , 应该给0~100!!!");}else{System.out.println("分数正常");}}}
packageTEXT_1;/*测试类*/importjava.util.Scanner;publicclassTeacherTest{publicstaticvoidmain(Stringargs){Scannersc=newScanner(System.in);System.out.println("请输入分数:");intscore=sc.nextInt;Teachert=newTeacher;//checkScore方法抛出一个异常 , 而这个异常继承的时Exception , 所有这个时一个编译时异常try{t.checkScore(score);}catch(ScoreExceptione){e.printStackTrace;}}}
JAVA入门之异常笔记(34)
文章图片
JAVA入门之异常笔记(34)
文章图片
JAVA入门之异常笔记(34)】注意:抛出异常 , 不一定会有异常 , 当出现异常才会有异常