throw与throws与自定义异常
2016-02-29 21:27
495 查看
class Math{ public int div(int i,int j) throws Exception{ // 定义除法操作,如果有异常,则交给被调用处处理 int temp = i / j ; // 计算,但是此处有可能出现异常 return temp ; } }; public class ThrowsDemo01{ public static void main(String args[]){ Math m = new Math() ; // 实例化Math类对象 try{ System.out.println("除法操作:" + m.div(10,2)) ; }catch(Exception e){ e.printStackTrace() ; // 打印异常 } } };
class Math{ public int div(int i,int j) throws Exception{ // 定义除法操作,如果有异常,则交给被调用处处理 int temp = i / j ; // 计算,但是此处有可能出现异常 return temp ; } }; public class ThrowsDemo02{ // 在主方法中的所有异常都可以不使用try...catch进行处理 public static void main(String args[]) throws Exception{ Math m = new Math() ; // 实例化Math类对象 System.out.println("除法操作:" + m.div(10,0)) ; } };
使用throws声明的方法表示此方法不处理异常,而交给方法的调用处处理异常;与throws不同的是,throw抛出一个异常,抛出时直接抛出异常类的实例化对象即可
public class <span style="font-family: Arial, Helvetica, sans-serif;">ThrowDemo01</span>{ public static void main(String args[]){ try{ throw new MyException("自己抛出异常。") ; // 抛出异常的实例化对象 }catch(Exception e){ <span style="font-family: Arial, Helvetica, sans-serif;"> </span><span style="font-family: Arial, Helvetica, sans-serif;">// 捕获异常</span> System.out.println(e) ; } } }
class Math{ public int div(int i,int j) throws Exception{ // 定义除法操作,如果有异常,则交给被调用处处理 System.out.println("***** 计算开始 *****") ; int temp = 0 ; // 定义局部变量 try{ temp = i / j ; // 计算,但是此处有可能出现异常 }catch(Exception e){ throw e ; //把异常交给调用处 }finally{ // 不管是否有异常,都要执行统一出口 System.out.println("***** 计算结束 *****") ; } return temp ; } }; public class ThrowDemo02{ public static void main(String args[]){ Math m = new Math() ; try{ System.out.println("除法操作:" + m.div(10,0)) ; }catch(Exception e){ System.out.println("异常产生:" + e) ; } } };
class MyException extends Exception{ // 自定义异常类,继承Exception类 public MyException(String msg){ super(msg) ; // 调用Exception类中有一个参数的构造方法,传递错误信息 } }; public class DefaultException{ public static void main(String args[]){ try{ throw new MyException("自定义异常。") ; // 抛出异常 }catch(Exception e){ System.out.println(e) ; } } }
相关文章推荐
- DOM文档加载
- [疯狂Java笔记]AWT容器简介
- printf打印格式
- Cpp_静态成员
- 安卓通知的使用系列2:状态栏通知和自定义状态栏通知通知
- R语言学习:数据结构7-数据框
- 我想当老师
- SQL Server中smalldatetime的日期范围为何是[1900-01-01,2079-06-06]
- cocos2d-x之事件传递
- 【quickSort】
- 2015年终总结-青春如歌
- PHP之有关类和对象的系统函数与运算符
- CSDN资源上传记录(持续更新)
- MODEL
- 160229-02、Sublime Text 3 快捷键总结
- 6.0字符串String
- 堆排序(C++版)
- Compare Version Number
- 关于我和Github不得不说的一些小事
- 数据切分——Atlas读写分离Mysql集群的搭建