捕获和抛出异常
- 捕获异常 关键字:try catch finally 。采用的快捷键:Ctr + alt +T。当有多个cash时,捕获异常的类型要从小到大,如下图从左到右

- 示例代码如下:
public static void main(String[] args) {
int a= 10;
int b =0;
// Ctr + alt +T
// 当有多个catch时,异常类型要从小到达进行捕获
try {
System.out.println(a/b);
}catch (Exception e) {
System.out.println("Exception");;//打印错误信息
}catch (Error e){
System.out.println("Error");;//打印错误信息
}catch(Throwable t){
System.out.println("Throwable");;//打印错误信息
} finally {
System.out.println("finally");
}
- 抛出异常,关键字throw throws
public static void main(String[] args) {
public void test(int a,int b){
if(b==0){
throw new ArithmeticException(); //主动抛出异常,一般在方法内部throw
}
System.out.println(a/b);
}
public void test1(int a,int b)throws ArithmeticException {//假设这个方法中处理不了这个异常,采用throws,异常上抛
if(b==0){
throw new ArithmeticException(); //主动抛出异常,一般在方法内部throw
}
System.out.println(a/b);
}
}
自定义异常
Java内置的异常类可以描述在编程时出现的大部分异常
自定义异常只需要继承Exception类即可
自定义异常类的步骤:
- 创建自定义异常类
- 在方法中通过throw关键字抛出异常现象
- 如果在当前抛出异常的方法中处理异常,可以试用try-cach语句捕获处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续下一步操作
- 在出现异常方法的调用者中捕获并处理异常
//通过继承Exception,自定义异常类
public class Demo02 extends Exception{
//传递数字超过10抛出异常
private int a;
public Demo02(int a) {
this.a = a;
}
//打印异常信息
@Override
public String toString() {
return "Demo02{" +
"a=" + a +
'}';
}
}
//测试
public class Aplication {
//可能会存在异常信息
static void test(int a) throws Demo02{
if(a>10){
throw new Demo02(a);//抛出
}
System.out.println("ok");
}
public static void main(String[] args) {
try {
test(12);
} catch (Demo02 e) {
System.out.println("Demo02->"+e); //ok
}
}
}
实际引用中的经验总结:
- 处理运行异常时,采用逻辑去合理规避同时辅助try-catch处理
- 在多重catch块后面,可以添加一个catch(Ecaption)来处理可能会被遗漏的异常
- 会与不确定代码。也可以加上try-catch,处理潜在异常
- 尽量去处理异常,切忌知识简单打印输出
- 尽量添加finally语句去释放占用资源

被折叠的 条评论
为什么被折叠?



