Java基础学习——异常处理

时间:2022-01-20 15:35:19

Java异常处理

程序的错误可分为三类:编译错误、逻辑错误和运行时错误。

1)编译错误是由于没有遵循Java语言的语法规则而产生的,这种错误要在编译阶段排除,否则程序不能运行。

2)逻辑错误是指程序编译正常,也能运行,但结果不是人们所期待的。

3)运行错误是指程序运行过程中出现的不可执行的操作,有时也可以由逻辑错误引起。


异常处理的主要目的是即使在程序运行时发生了错误,也要保证程序能正常结束,避免由于错误而使正在运行的程序中途停止。

异常是程序执行期间发生的各种意外或错误。比如:

<1>用户输入错误

<2>所需文件找不到

<3>运行时磁盘空间不够

<4>内存不够

<5>算术运算错(数的溢出,被零除等)

<6>数组下标越界


在Java程序运行过程,产生的异常通常有三种类型;

1)Java虚拟机由于某些内部错误Error产生的异常,这类异常不在用户程序的控制之内,也不需要用户处理这类异常;

2)标准异常类,由Java系统预先定义好的。这类异常是由程序代码中的错误而产生的。如;以零为除数的除法,访问数组下标范围以外的数组元素,访问空对象内的信息,这是要用户程序处理的异常。

3)根据需要在用户程序中自定义的一些异常类。


Java基础学习——异常处理


异常的处理机制

1)异常的抛出(throw)

抛出异常有两种方式:由系统自动抛出和利用抛出语句抛出。

<1>系统自动抛出异常:在程序运行过程中,如果出现了可被Java运行系统识别的错误,系统会自动产生与该错误相对应的异常类的对象,即自动抛出。

<2>人为异常抛出

①在方法头写出需要抛出的异常(利用throws语句)

Java基础学习——异常处理

②在方法体内抛出的异常(利用throw语句)

Java基础学习——异常处理


捕捉异常

try-catch语句块格式

try{

  //在此区域内或能发生异常

}catch(//异常类1  e1){

//处理异常1

}catch(//异常类n en){

//处理异常n

}

finally{

//不论异常是否发生,都要执行的部分

}


用户自定义的异常类

用户根据需要定义自己的异常类,即创建自定义异常类。

1)用户自定义的异常类必须是Throwable类或Exception类的子类。

2)自定义的异常类,一般只要声明两个构造方法,一个是不用参数的,另一个以字符串为参数。作为构造方法参数的字符串应当反应异常的信息。

3)自定义异常类格式

class MyException extends Exception{

}

注:用户定义的异常同样要用try-catch捕获,但必须由用户自己抛出throw new MyException()。