异常是导致程序中断运行的一种指令流,如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失,所以在程序中必须要考虑各种异常的发生,并正确做好相应的处理,这样才能保证程序的正常执行。
异常类的继承结构:
在整个java异常结构中,有两个最常用的类,分别是exception和error,这两个类都是throwable的子类
exception:一般表示的是程序中出现的问题,可以直接使用try...catch处理
error:一般表示的是JVM错误,程序中无法处理
throws关键字:
在定义一个方法时可以使用throws关键字,使用throws关键字表示此处不处理异常,而交给方法的调用处进行处理,throws关键字的使用格式如下
public 返回值类型 方法名称 (参数列表) throws 异常类{}
示例代码:
throw关键字:
抛出一个异常,抛出时直接抛出异常类的一个实例化对象
示例代码:
为什么要使用异常处理:在没有异常处理的语言中就必须使用判断语句,这样编写出来的代码就有大量的判断语句,即使这样也未必能扑捉到所有错误,而且这样会导致程序运行效率的降低,而使用异常处理机制,可以增进程序的稳定性及效率。
编写异常的格式:
try{
//有可能出现异常的语句
}
catch(异常类 异常对象){
//编写异常的处理语句
}[
catch(异常类 异常对象){
//编写异常的处理语句
}
]...
[finally{
//一定会运行的程序代码
}]
代码示例:
public class Test1 {
public static void main(String[] args) {
System.out.println("*******开始计算**********");
int i=10;
int j=0;
try{
int temp=i/j;//此处会产生异常
System.out.println("两个数字相除结果:"+temp);//代码不执行
System.out.println("---------------");
}
catch(ArithmeticException e){//扑捉算数异常
System.out.println("出现异常了:"+e);//出现异常执行异常处理代码
}
finally{
System.out.println("不管是否出现异常,都要执行finally里面的代码");
}
}
}
异常类的继承结构:
在整个java异常结构中,有两个最常用的类,分别是exception和error,这两个类都是throwable的子类
exception:一般表示的是程序中出现的问题,可以直接使用try...catch处理
error:一般表示的是JVM错误,程序中无法处理
throws关键字:
在定义一个方法时可以使用throws关键字,使用throws关键字表示此处不处理异常,而交给方法的调用处进行处理,throws关键字的使用格式如下
public 返回值类型 方法名称 (参数列表) throws 异常类{}
示例代码:
public class Test2 {
public int div(int i,int j) throws Exception{
int temp=i/j;
return temp;
}
}
throw关键字:
抛出一个异常,抛出时直接抛出异常类的一个实例化对象
示例代码:
public class Test2 {
public static void main(String[] args) {
try{
throw new Exception("抛出的异常");
}
catch(Exception e){
System.out.println(e);
}
}
}