Java异常处理
什么是异常
会打断程序进程的的代码
为什么需要处理异常
防止程序异常退出
异常分类
Error
java虚拟机无法处理的异常,一般是java虚拟机出现问题。
Exception
一般是程序员代码的问题
Runtime Exception
运行时异常
范围:
RuntimeException 及其子类
举例:
- 指针异常
特点:
编译期间不能发现,
要求:
在代码中可以使用try catch finally 处理
Checked Exception
受检异常
范围:
RuntimeException 之外的类及其子类
举例:
要求:
JAVA强制要求处理
处理异常
异常处理与抛出的使用形式
try-catch
注意:有多个catch时候,异常子类要在异常父类前面
try{
//可能发生异常的代码
}
catch(//产生异常的类型)//可以有多个catch语句,catch可以嵌套使用(异常子类,要在异常父类前)
{
//异常处理
}
catch(ArithmeticException e)//数学异常
{
//异常处理
}
catch(Exception e)
{
}
try-catch-finally
try{
//可能异常的代码
}
catch(//异常类型)
{
//异常处理
}
finally
{
//无论异常与否,无论异常是否捕获,都执行
}
抛出异常
抛出的含义就是向用户输出一句话,并且结束程序
(实际上是返回一个Exception类型的对象)
throw
必须写在方法中
if(n==0)
{
throw new Exception("除数不能为零");
}
else
{
System.out.println(m/n);
throws
声明将抛出何种类型的异常,把异常交给该方法的调用者处理。
public void methodName(参数列表) throws Exceotion 类型列表
{
//可能发生异常的代码
throw new Exception();
//或者调用能抛出异常的方法
}
自建异常类型
例如...
package Product;
public class MyRuntimeException extends RuntimeException
{
public MyRuntimeException(String mesage)
{
super(mesage);
}
}