java异常
小结
RuntimeException和Exception有什么区别:
Exception属于编译时异常,编译器在编译时会检测该异常是否异常的处理方案 ,如果没有处理方案,编译不能通过。
RuntimeException属于运行时异常,编译器不会检测该异常是否有异常的处理方案,不需要声明。
说明:在Exception的所有子类异常中,只有RuntimeException不是编译异常,是运行时异常,其他子类都是编译异常。
编译时期异常
一定要用try catch或者tthrows处理,否则程序报错,无法生成字节码文件
checked异常。在编译时期,就会检查,如果没有处理异常,则编译失败。(如日期格式化异常)
2种解决方式
throws(不推荐,没法运行后续代码)
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19package cn.itcast.test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class TryTest { public static void main(String[] args) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = null; date = sdf.parse("1999-0909"); System.out.println("date = " + date); System.out.println("后续代码"); } }
try catch(推荐,可以运行后续代码)
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23package cn.itcast.test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class TryTest { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = null; try { date = sdf.parse("1999-0909"); } catch (ParseException e) { e.printStackTrace(); } System.out.println("date = " + date); System.out.println("后续代码"); } }
运行时期异常
不一定要用try catch或者throws处理,因为程序不报错
runtime异常。在运行时期,检查异常.在编译时期,运行异常不会让编译器检测(不报错)。(如数学异常)
运行时期时异常:ArrayIndexOutOfBoundsException,NullPointerException
运行时期异常(RuntimeException)在方法上不用throws抛出
当 throw new RuntimeException的时候,不用throws
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33package cn.itcast.test; public class TryTest { public static void main(String[] args) { //创建一个数组 int[] arr = {2,4,52,2}; //根据索引找对应的元素 int index = 4; int element = getElement(arr, index); System.out.println(element); System.out.println("over"); } /* * 根据 索引找到数组中对应的元素 */ public static int getElement(int[] arr,int index){ //判断 索引是否越界 if(index<0 || index>arr.length-1){ /* 判断条件如果满足,当执行完throw抛出异常对象后,方法已经无法继续运算。 这时就会结束当前方法的执行,并将异常告知给调用者。这时就需要通过异常来解决。 */ throw new ArrayIndexOutOfBoundsException("哥们,角标越界了~~~"); } int element = arr[index]; return element; } }
最后
以上就是天真薯片最近收集整理的关于编译异常和运行期异常java异常的全部内容,更多相关编译异常和运行期异常java异常内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复