ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Java-SE Day6

Java-SE Day6

Java 异常

Java 把异常当作对象处理,并定义一个基类java.lan.Throwable 作为所有异常的超类

异常分为两大类 : ErrorException

**Error **类对象由 JVM 生成并抛出,大多数与代码编写者所执行操作无关

Exception 有个非常重要的子分支:RuntimeException (运行时异常) ,这些异常一般由程序逻辑错误引起


捕获和抛出异常

捕获多个异常中,从小到大进行捕获

异常处理5个关键字 : try、catch 、finally 、 throw、throws

int a = 1;
int b = 0;
try{ //try 监控区域System.out.println(a/b)
}catch (异常类型 e){ //catch 捕获异常,执行异常后进行的操作System.out.println("程序出现异常")
}finally{		// 处理善后工作System.out.println("finally")
}throw new 异常类型();						// 主动抛出异常,一般在方法中使用

ctrl + alt + t : 快速生成代码框架包裹代码块


自定义异常

自定义异常只需继承 Exception 类即可,自定义异常不常用

// 通过构造器来接受传入信息,再通过toString 方法打印需要返回的错误信息
public class MyException extends Exception{pulic int datail;// 定义构造器传入参数public MyException(int a){this.number=a;}//toString : 用于打印异常的信息//toString 方法会在类被当作字符串时自动调用public String toString(){return "MyException{"+number+"}";}
}// 调用自定义异常需注定throw 抛出捕获,或者throws 抛至更高层的方法
static void test(int a) throws MyException{			// throws向函数调用层抛出异常System.out.println("传递的参数为"+a);if (a>10){throw new MyException(a);	// 主动使用MyException 抛出异常}System.out.println("OK");
}
psvm{// 由于异常由方法抛出,所以这里必须做try catch 捕获try{test(1);}catch (MyException e){		// catch 会将MyException 类当作字符串调用,从而触发了toString 方法System.out.println("MyException=>"+e)}
}

try catch 捕获异常时,若存在多重catch 块,需catch(Exception) 用来兜底

返回列表