java异常与线程

异常

  1. 异常体系:Error和Exception
    Error:指JVM出现不可恢复的错误,程序员处理不了。
    Exception:指程序中因操作不当,出现的非正常情况,必须要处理。
    2.处理异常分为处理单个异常与处理多个异常:
    处理单个异常:用try{}catch(){}语句
    举例:

    try {
    int c=10/0;
    } catch (Exception e) {
    System.out.println(e.getMessage());
    }
    处理多个异常:用try{}catch(){}catch(){}…
    举例:

    try {
       int c=10/0;
       int[] n=new int [1];
       d=n[1];
     } catch (Exception e) {
       System.out.println(e.getMessage());
     } catch (Exception e) {
       System.out.println(e.getMessage());
     }
    

    无论处理单个异常还是多个异常其实当try的代码块中发现异常时其实时new了该异常类型的对象,并将该异常对象传给对应类型的catch,catch将其捕获并反馈给程序员。

3.finally关键字
finally与try{}或与try{}catch(){}…连用
作用:释放资源
finally中的语句一定会执行,除非代码用System.exit(0);结束程序
举例:

   try {
        int c=10/0;
    } catch (Exception e) {
        System.out.println(e.getMessage());
    }finally{
    System.out.println("此代码一定会执行");
    }

4.throw
throw在方法内部抛出一个异常,将异常抛给它的调用者。
一般在一个方法内部出现异常不知道要写什么的时候就用throw。
throw和return类似执行完后都会结束方法。
举例:

   public class throw {
   public static void main(String[] args) {
    try {
        int c = dowork1(10, 0);
    } catch (Exception e) {
        System.out.println(e.getMessage());
    }
    }
}
    public static int dowork1 ( int i, int j){
        if (j == 0) {
            throw new ArithmeticException("除数不为0");//此时将异常对象返回,参数中写上原因,不写则什么都不会有
        }
        int c = i / j;
        return c;
    }
}

5.throws
使用throws在方法声明上抛出异常,当一个方法自身不处理异常,而是要把异常交给调用者处理此时就要用throws将异常抛出,只需在方法声明最后加上throws 异常类型。
举例 :

   public class throws {
   public static void main(String[] args) throws Exception {
        int c = dowork1(10, 0);
    }
   }
   public static int dowork1 ( int i, int j){
        if (j == 0) {
            throw new ArithmeticException("除数不为0");//此时将异常对象返回,参数中写上原因,不写则什么都不会有
        }
        int c = i / j;
        return c;
    }
  }
  //该例子将异常抛给了JVM

6.补充:以上例子中的Exception可以具体到哪种异常,若处理多异常时Exception一定要写在最后一个catch的参数中,若写在前边则无论哪种异常都会被捕获。

本次内容比较少,因为想下次把线程的东西写在一起。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值