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中的异常被分为两大类:编译异常和运行异常 , 也被称为受检异常和非受检异常所有的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实现封装成对象的 , 因此自定义异常的作用就出来了 , 在自定义异常类中通过编写新的方法来处理相关异常
那么我们怎么创建属于自己的异常呢?我们只需要在建立异常的时候 , 继承Exception或者RuntimeException即可
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)】注意:抛出异常 , 不一定会有异常 , 当出现异常才会有异常
- 炸锅|酷暑之下,莫让这些谣言再增“热”度
- 安全测试之渗透测试
- Flyme|“国产系统之光”Flyme迎来十周年,纪念海报上线引发热议
- 新发现恐龙可能在灾难性的太空岩石撞击地球之前就已经灭绝了
- 为何人类所到之处,地球会“寸草不生”?这符合进化论的原理吗?
- 联发科天玑9000+之王浮出水面,极有可能又是vivo
- 水洞中发现玛雅人残骸,可能并没有消失,或揭开玛雅消失之谜!
- 马云|马云自己\打脸\之前所说的,如今现身西班牙,开12亿游艇!
- 中兴|使用中兴Axon40UItra之后,明白屏幕完美,却在市场上遇冷的原因
- 旗舰机|旗舰机的更新对于任何一家厂商都没有难度,但入门级,还得看绿厂
