黑马程序员技术交流社区

标题: 异常的捕获 [打印本页]

作者: 周斌    时间: 2012-11-5 17:34
标题: 异常的捕获
  1. class MyException extends Exception
  2. {
  3. MyException(){}

  4. }
  5. class A
  6. {
  7. public int format(String str)throws MyException
  8. {
  9. int i = Integer.valueOf(str);
  10. return i;
  11. }
  12. }
  13. public void testTester()
  14. {
  15. new A().format("1");
  16. }
复制代码
定义了以上的类和测试方法,那么测试时期待要捕获什么异常呢?

作者: 朱宏青    时间: 2012-11-5 17:54
看来你没搞懂异常到底是什么东西。

异常是只程序出现的错误 1。编译错误 2。运行错误    如果没有错误,那么你是看不到异常具体的行为的。

一般我们自己定义的异常属于运行时的错误,遇到该错误时系统会对其进行捕捉(程序必须写好会预见的错误)然后反馈。

捕获异常的方式有2种,一个是遇到异常中断程序直接抛出异常。(你这个就是)

还有一个是遇到异常进行调试,具体的调试内容看这个异常是怎么写的了(一般基本也是中断程序抛处异常。。)try()catch(){}fanilly{};

基本概论就是这样 要好好理解啊!

作者: 奋斗的青春    时间: 2012-11-6 00:19
这样的代码我感觉不舒服了 。
作者: 林晓泉    时间: 2012-11-6 09:11
本帖最后由 林晓泉 于 2012-11-6 09:13 编辑
  1. class MyException extends Exception
  2. {
  3. MyException(){}

  4. }
  5. class A
  6. {
  7. public int format(String str)throws MyException
  8. {
  9. int i = Integer.valueOf(str); //这个方法声明了有异常抛出。可是方法体里根本没有抛出异常的对象
  10. return i;//这个方法要说明一下,在什么情况下要抛出异常 如:if (i==0) throw new MyException();
  11. }
  12. }
  13. public void testTester()
  14. {
  15. new A().format("1");//format方法抛出了编译时异常,所以调用的时候要处理它 就用try{}catch(){}
  16. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2