异常处理(Exception)

什么叫异常(Exception):在程序运行过程中出现的错误
再看一张图
这里写图片描述
异常的分类
异常主要分为:错误、一般性异常(受控异常)、运行期异常(非受控异常)
1)错误:如果应用程序出现了Error,那么将无法恢复,只能重新启动应用程序,最典型的Error的异常是:OutOfMemoryError(内存溢出)
2)受控异常:出现了这种异常必须显示的处理,不显示处理java程序将无法编译通过
3)非受控异常:此种异常可以不用显示的处理,例如被0除异常,java没有要求我们一定要处理
.如何处理异常?

第一种处理方式
异常的捕获和处理需要采用trycatch来处理,具体格式如下:
try {
 //包含了可能产生异常的代码
}catch(OneException e) {  
//处理的方式1
}catch(TwoException e) {
//处理的方式2
}finally {//finally可要可不要
//一定要执行的代码 

}
第二种处理方式
  public void haha()  throws Exception1 e1,Exception2 e2{
        //可能出现异常(尤其是编译时异常,一定要处理)
        //这里的意思是指将可能出现的异常交给上层去处理,不用自己处理
     }
第三种处理方式(自己手动抛出异常+自己定义一个异常)
/**定义一个自定义异常类继承Exception
 * 并写一个构造函数
 */

public class TestException  extends Exception{
public TestException(String string) {
    System.out.println(string);;}
}
import java.util.Scanner;
/**
 *定义一个简单的测试类,如果输入的除数为0就抛出你“除数不能为0!” 其实系统会自己检查抛出异常的,我们这里仅仅为了举例说明如何自定义异常及抛出来
 */
public class Test {
    public static void main(String[] args) throws Exception {
        int i = 0;
        int x = 0;
        Scanner input = new Scanner(System.in);
        i=input.nextInt();
        x=input.nextInt();
        double  y;
        if (i==0) {
             throw  new TestException("除数不能为0!!");//抛出自己定义的异常
        }
        y=x/i;
        System.out.println(y);
    }
}

显示结果
0
5
除数不能为0!!
Exception in thread "main" TestException
    at Test.main(Test.java:12)

注释::如果我们是用eclipse作为我们IDE的话 ,系统会自己检查异常的我们会只需要按照系统的提示,抛出相应的异常就行了,但我们要明白异常的体系结构和为什么会抛出异常。。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值