标签:
什么是异常呢:
在现实生活中,总会有一些问题,聚焦在生活上,我们会有工作问题,比如工作不满意,工作薪水低,工作没有发展前景,那么我们会成为这是一个“问题”。
在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异常处理的基本法则,你要么抛,要么自己解决,就好像你对待生活中的数学问题一样,你要么跳过去不去想它,要么你自己解决这个问题
标签:
原文地址:http://www.cnblogs.com/theones2015/p/4997276.html