JAVA异常

一、异常的体系

1.异常的继承体系
异常的根类是 java.lang.Throwable,其下有两个子类:
java.lang.Error 与 java.util.Exception 。而Exception又分为编译时期异常:checked异常,与运行时期异常:runtime异常。
2.你对错误(Error)的理解
Error类一般表示与虚拟机有关的问题,如系统崩溃、内存溢出、方法调用栈溢出、虚拟机 错误 等问题,对于出现这样的错误,仅靠程序本身是无法修复的,需要终止程序,修改代码
3.你对异常(Expection的理解)
Exception类,表示的是程序可以处理的异常,如空指针异常、数组越界异常、没有元素异常、类型转换异常等等。
4.你对运行时异常(RuntimeException)的理解
运行时异常,就是编译通过,运行时出现异常
运行时期异常:runtime异常。在运行时期,检查异常.在编译时期,运行异常不会编译器检测(不报错)。

二、throw与throws的区别

1.throw的使用位置,作用是什么?
throw出现在函数体。;throw则是抛出了异常,执行throw则一定抛出了某种异常对象。
2.throws的使用位置,作用是什么?
throws出现在方法函数头;throws表示出现异常的一种可能性,并不一定会发生这些异常
两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。

三、异常的处理方式

  1. 异常处理方式有几种,分别是什么?
    异常的处理方式有两种,分别是使用throws和try…catch…finally
  2. 详细阐述每种方式对异常是如何处理的
    throws用在方法的声明上后接异常类名,是把异常抛给调用者进行处理
    try…catch…finally是捕获异常,自己处理,处理完毕后面的程序可以继续运行
    a)try代码块中是可能出现异常的代码
    b)catch代码块,是遇到异常,对异常进行处理的代码
    c)finally代码块是无论是否发生异常,都必须执行的代码,用于释放资源.

四、常见异常,及产生原因

请列举常见异常,并说明产生原因。
NullPointerException:空指针异常。
ArrayIndexOutOfBoundsException:数组索引越界异常。

五、看代码,分析结果

根据给出的相应代码,分析可能产生的结果。

1.举例:

public static void main(String[]args){
 String str=null;
System.out.println(str.length());

}

变量str的值为null,调用方法时,报空指针异常NullPointerException

2.举例:

public static void main(String[]args){
int arr[]={1,2};
System.out.println(arr[2]);
}

索引值2大于等于数组arr的长度时,报数组索引越界异常ArrayIndexOutOfBoundsException

3.举例:

public static void main(String[]args){
System.out.println(1/0);
}

整数0做了分母,报算术运算异常ArithmeticException:/by zero

4.举例:

public static void main(String[]args){
System.out.println(Integer.parseInt("itcast"));
}

把字符串“itcast”转换为Integer类型时,当然会报数字格式化异常啦NumberFormatException

八、自定义异常类

请使用代码实现
每一个学生(Student)都有学号,姓名和分数,分数永远不能为负数
如果老师给学生赋值一个负数,抛出一个自定异常

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值