概述
Java中的异常(Throwable)分为两类:异常Execption和错误Error。
Error,也就是错误,这个是不可避免的,出现的问题使得应用停止,例如:服务器损坏、内存溢出等。在java中所有的错误都继承自Error类,这个是不可控的。
Exection,也就是异常,是可控的,异常又分为编译时异常和运行时异常,编译时异常是由编码语法错误导致的,在编译时期就可以看出来,即使进行修改。代码如下:
public class ErrorTest {
public static void main(String[] args) {
String s = 5;//这样就会直接报错,开发者可以直接看到
}
}
运行时异常是由业务逻辑导致的,只有到了运行时才可以看出来。代码如下:
public class ErrorTest {
public static void main(String[] args) {
int i = 5;
int j = 4;
add(i, j);//5+4=1
System.out.println(i / 0);//这里违反了除法的基本逻辑,运行时也会报错
}
public static void add(int i , int j) {
//这里就是编译时异常,有逻辑不清造成
System.out.println("i+j="+(i - j));
}
}
因为当程序出现异常时便不再继续往下执行代码,所以异常需要处理,这里的异常值得是Exection,如果程序发生Error,应用会直接停止,而不是不继续往下执行代码,错误是控制不了的,只能重启应用,所以错误一定要避免。Java中解决异常的方式有抛出异常和捕获处理异常。所谓抛出异常就是指当程序遇到异常时,不去处理异常,而是将异常抛出去,保证程序能继续往下执行,捕获异常则是指程序遇到异常时,将异常的错误信息进行处理,保证程序继续执行,代码如下:
/**
* 异常的处理方式有两种:
* 一是使用throws或者throw:只是将错误抛出,不做任何处理
*
可以在代码中主动抛出错误,使用thorw关键字,格式为throw new Exception();
*
可以在方法上、类上抛出错误,使用thorws关键字,格式throws Exception
* 而是使用try..catch..finally:捕获错误,处理错误
*
格式如下:
*
try{
*
可能发生错误的代码;
*
}catch(异常类){
*
抛出异常信息;//可以有多个catch块
*
}finally{
*
finally中的代码不管怎么样都会执行;
*
}
* @author chaizepeng
*
*/
public class ErrorTest {
public static void main(String[] args) {
int i = 5;
int j = 0;
//add方法抛出了异常,在这里捕获异常并作处理
try {
add(i,j);
} catch (ArithmeticException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally {
System.out.println("做一下容灾处理。。。");
}
}
//在这里不处理错误,将错误抛出,谁调用这个方法,出错的时候再做处理
public static void add(int i , int j) throws Exception{
System.out.println(i/j);
throw new Exception();
}
}
开发者可以自定义异常,就是继承自Execption类,然后自定义异常即可,代码如下:
public class NoZeroExection extends Exception{//继承自Exception类
public NoZeroExection() {//用构造方法来描述错误信息
System.out.println("不可出现数字0");
}
}
class Test{
public static void main(String[] args) {
int flag = 0;
try {//捕获异常
myExcetion(flag);
} catch (NoZeroExection e) {
System.out.println("出现错误:");
e.printStackTrace();
}
}
public static void myExcetion(int flag) throws NoZeroExection{//抛出异常
if (flag == 0) {
throw new NoZeroExection();
}
System.out.println("正常执行。。。");
}
}
常见的异常:
空指针异常 | NullpoiontException |
数组下标越界 | ArrayIndexOutOfBoundsException |
参数错误 | ArithmeticException |
IO异常 | IOException |
类不存在异常 | ClassNotFoundException |
方法不存在异常 | NoSuchMethodException |
sql异常 | SQLException |
。。。。 |
最后
以上就是落后香烟为你收集整理的9、java中的异常处理机制的全部内容,希望文章能够帮你解决9、java中的异常处理机制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复