Java中异常的基本应用(一)

  在Java中,我们把异常当做一种对象来处理,正是异常机制的引入,使得我们的程序更加健壮。异常指示了一个不正常的条件,或者一个错误条件,简单地说就是一个中断了正常的指令流的事件。程序控制将无条件的抛至一个特定的代码段,在此将捕获异常并加以处理,由此将错误处理与程序的正常处理分离开来,错误就可以被单独处理了。

  异常由Exception类及其子类的实例表示,大多数包都定义了自己的异常类型,它们往往是Exception的子类,我们也可以自己定义异常的类型。当错误条件出现时,应有一段代码用来创建异常对象。Exception对象要作为一个参数传递给负责处理的代码块,这就涉及到异常的抛出和捕获。

  如图所示,可抛出的除了异常还有错误类。Error类通常指示一些重大的错误或者虚拟机错误,不应由程序捕获。至于异常则分为两类,分别是运行时异常和编译时异常,或者可以叫做unchecked异常和checked异常。我们通常会遇到的IO异常和SQL异常都属于checked异常,对于这种异常,编译器要求我们必须对其进行处理。而runtime exception则可以不作处理,由虚拟机来接管。

  出现异常时,要么直接处理,要么向上抛出,等待上层调用方法进行处理。如果始终没有得到处理,那么如果是多线程就由Thread.run()抛出,如果是单线程就由main()抛出,之后相应的线程或整个程序退出。Runtime Exception和Error都可以不做处理,因此程序在遇到此类错误时,如果没有处理块程序就会终止退出。

  异常的处理方式:

  1、try-catch-finally结构处理异常

try{
    //正常代码,包含可能出错的代码
    //如果有return,先走finally再回来return
}catch(异常类型 Exception e){
    //异常处理    
}finally{
  //finally块,无论程序是否出现异常都会运行
  //异常的出口
}

  2、暂不处理,向上抛出

  throw用于手动抛出异常(系统无法识别的异常),throws进行声明,用于说明方法有可能发成的错误类型,调用该方法时进行try-catch处理。如果不声明,就需要在方法内进行try-catch处理。

public void setAge(int age) throws Exception{
    if(age>=15&&age<=40){
        this.age=age;
    }else{
        throw new Exception("年龄必须在15到40之间!");
    }

  该例在调用setAge方法时,进行try-catch处理,或者继续向上抛出。

转载于:https://www.cnblogs.com/An1994/p/5245745.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值