java异常的原理_java中的异常处理原理浅谈

什么是异常呢:

在现实生活中,总会有一些问题,聚焦在生活上,我们会有工作问题,比如工作不满意,工作薪水低,工作没有发展前景,那么我们会成为这是一个“问题”。

在java的世界中,那么我们相对应的是程序,那么程序也有这样或者那样的问题,那么我们成为“异常”。异常就是程序在运行时出现的不正常现象。

java把异常封装成对象的描述,来高度的概括。

b568d0fe3df0186d2e443a37127b1005.png

java中Error我们无能为力。我们还是聊聊Exception

Exception的分类:

1.编译时异常 必须进行捕获

2.运行时异常(也就是RuntimeException)

java异常解决方案

class Demo

{

public int division(int a,int b) throws Exception//声明程序可能发生异常,丢给调用者处理

{

return a/b ;

}

}

class ArithmeticExceptionDemo

{

public static void main(String[] args) throws Exception//如果真的发生异常,就给调用者去处理。调用main函数的是java虚拟机,所以是虚拟机

{ //以默认的发生来处理

Demo d=new Demo();

d.division(3,0);

}

}

总结:通过throws Exception的方式丢给调用者处理。

通过try{} catch{}方式来解决

1 class FushuException extendsException2 {3 FushuException(String msg)4 {5 super(msg);6 }7 }8 classDemo9 {10 public int division(int a,intb)11

12 {13

14 try

15 {16 if(b<0)17 throw new FushuException("负数异常"+b);18 }19 catch(FushuException e)20 {21 System.out.println("这是一个负数异常");22 }23

24

25 return a/b ;26

27 }28 }29 classExceptionDemo430 {31 public static voidmain(String[] args)32 {33 Demo d=newDemo();34 int x=d.division(3,-1);35 System.out.println("x="+x);36 System.out.println("over");37 }38 }

总结:自己抛出了异常对象,自己检测和捕获解决

我们也可以这样抛给调用者解决

1 class FushuException extendsException2 {3 FushuException(String msg)4 {5 super(msg);6 }7 }8 classDemo9 {10 public int division(int a,int b) throwsFushuException11

12 {13

14

15

16 if(b<0)17 throw new FushuException("负数异常"+b);18

19

20

21 System.out.println("这是一个负数异常");22

23

24

25 return a/b ;26

27 }28 }29 classExceptionDemo430 {31 public static voidmain(String[] args)32 {33 Demo d=newDemo();34 try

35 {36 int x=d.division(3,-1);37 System.out.println("x="+x);38 }39 catch(FushuException e)40 {41 System.out.println("这是一个负数异常");42 System.out.println(e.toString());43 }44

45 System.out.println("over");46 }47 }

这就是java异常处理的基本法则,你要么抛,要么自己解决,就好像你对待生活中的数学问题一样,你要么跳过去不去想它,要么你自己解决这个问题

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值