前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >异常处理

异常处理

作者头像
木瓜煲鸡脚
发布2019-07-22 16:09:22
9190
发布2019-07-22 16:09:22
举报
文章被收录于专栏:Jasper小笔记

异常处理

异常的分类

Throwable是所有异常类的父类派生了两大类Error与Exception

Error是用来描述java运行系统中的类部错误像内存溢出等

Exception类称为非致命性类,可通过捕捉处理程序使其继续执行

Exception又分为运行异常(RuntimeException和其下子类)和其他类属于编译时异常

JVM处理异常方式

Main方法收到问题后又两种处理方式

第一种程序种有捕捉处理程序去处理

第二种程序种没能处理,就会让JVM来处理(将异常名称,异常信息,异常出现的位置打印在控制台,同时停止运行)

处理异常方法

try...catch代码块

当try中代码出现异常时中断就会产生相对应的异常类对象传入catch中并开始执行catch中的代码

代码语言:javascript
复制

class test{ 
  public static void main(String[] args) {
    
    int[] arr = {1,2,3};
    
    try {
      System.out.println(arr[3]);
    }catch (ArrayIndexOutOfBoundsException e) {// 接收来自try中异常产生的参数
       System.out.println(e.getMessage());// 打印异常参数信息
       System.out.println(e);// 异常名加异常信息
       e.printStackTrace();// 异常名加异常信息加异常位置
    }
  } 
}

结果:
      3
      java.lang.ArrayIndexOutOfBoundsException: 3
      java.lang.ArrayIndexOutOfBoundsException: 3
        at first.a.test.main(test.java:13)

使用多个catch可以捕捉不同种类的异常,但一般用它们的父父类Exception就好了

代码语言:javascript
复制
try{

}catch(ArrayIndexOutOfBoundsException e){

}catch(ArithmeticException e){

}

完整的异常处理语句要加上finally无论有无异常都会执行,就算try代码块提前收到返回值即函数结束,它仍然会把finally执行之后再结束。除非在之前虚拟机被关闭System.exit()或者它本身有异常以及程序所在线程死亡,这些种情况下才不会被执行

抛出异常

throws通常被应用在声明方法时来指定抛出的异常

调用声明了异常的方法就会有编译异常

需要用捕捉语句对调用方法的语句进行处理

或者继续往上抛,即包含此语句的方法

代码语言:javascript
复制
class test{
  
  static void ff(int a) throws Exception{
    if(a==0){
      throw new Exception("出错了");
    }
  }
  public static void main (String[] args) throws Exception{
  
    ff(0);// 会有异常,抛给main方法。也可以用捕捉语局处理
    

  } 
}

自定义异常类

继承Exception并构造方法传入参数信息

重写了构造器后就要自己把调用父类构造器添上

代码语言:javascript
复制
public class MyException extends Exception{
  public MyException(String message){
    super(message);
  }
}
// 然后就可以使用此异常类,和上面使用一样
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT那个小笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档