4、异常
一、异常:指程序运行时出现的不正常情况,是对问题的描述,将问题进行对象的封装。
1、在Java中错误分为两种情况:严重的(Error)、非严重的(Exception)
Error:Java通过Error类进行描述,一般不编写针对性的代码对其进行处理
Exception:Java通过Exception类进行描述,可以使用针对性的处理方式进行处理
2、在Java中异常被分为两大类:
运行异常(RuntimeException):RuntimeException直接继承Exception类,Java中所有的运行时异常都会直接或间接的继承RuntimeException类。
非运行异常(检测时)异常:Java中凡是继承Exception而不继承RuntimeException的类都是非运行异常
二、异常处理:
1、对于非运行时异常,必须要对其进行处理,处理方式有两种:
a)try……catch……finally进行捕获
b)在调用会产生异常的方法所在的地方处声明(throws Exception)
2、对于运行时异常我们可以对其处理,也可以不对其进行处理。方法同上。
/***********************************************************************************************************/
public static void div(int x, int y){
try{
/*
* try里放可能会出现异常的代码
*/
int i = x / y;
System.out.println("i=" + i);
}catch(Exception e){
System.out.println("出错了。。。" + e.getMessage());
System.out.println(e.toString());
e.printStackTrace();
}finally{
/*
* catch里面的语句执行完后执行finally里的语句
* finally里面通常用来执行始终要运行的代码 比如关闭资源
*/
System.out.println("finally里面的语句!!!");
}
System.out.println("over---div");
}
/***********************************************************************************************************/
public static void div1(int x, int y) throws Exception {
if(y == 0){
throw new Exception("除数不能为0");// 抛出异常,那么方法上必须通过throws关键字声明异常 注意:抛异常的动作可以放在方法体的任意位置
}
int i = x / y;
System.out.println("i=" + i);
}
三、自定义异常:
/*项目中会出现特有的问题,而这些问题并未被Java所描述并封装对象,所以对这些特有的问题可以按照Java的对问题封装的思想,将特有的问题进行自定义的异常封装。通常继承Exception,这个类就是一个自定义异常类*/
public class MyException1 extends Exception {
private String errorCode;// 错误代码
public MyException1(){
}
public MyException1(String message){
super(message);//调用Exception里面的带参构造器
}
public MyException1(String message, String errorCode){
super(message);
this.errorCode = errorCode;
}
public String getErrorCode() {
return errorCode;
}
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
}