码迷,mamicode.com
首页 > 编程语言 > 详细

java中的异常处理原理浅谈

时间:2015-11-26 12:40:30      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

什么是异常呢:

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

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

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

技术分享

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 extends Exception
 2 {
 3     FushuException(String msg)
 4     {
 5             super(msg);    
 6     }
 7 }
 8 class Demo
 9 {
10         public int division(int a,int b) 
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 class ExceptionDemo4
30 {
31         public static void main(String[] args)
32         {
33                 Demo d=new Demo();
34                 int x=d.division(3,-1);
35                 System.out.println("x="+x);
36                 System.out.println("over");
37         }
38 }

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

 

 

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

 1 class FushuException extends Exception
 2 {
 3     FushuException(String msg)
 4     {
 5             super(msg);    
 6     }
 7 }
 8 class Demo
 9 {
10         public int division(int a,int b)  throws FushuException
11                                            
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 class ExceptionDemo4
30 {
31         public static void main(String[] args)
32         {
33                 Demo d=new Demo();
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异常处理的基本法则,你要么抛,要么自己解决,就好像你对待生活中的数学问题一样,你要么跳过去不去想它,要么你自己解决这个问题

java中的异常处理原理浅谈

标签:

原文地址:http://www.cnblogs.com/theones2015/p/4997276.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!