jinfeng_wang

G-G-S,D-D-U!

BlogJava 首页 新随笔 联系 聚合 管理
  400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks

   假设我的团队正在开发一个库程序,由于某种原因,现在希望能够得到所有最外层 API 所抛出的所有异常的类型、各自的信息、并且能够附上各种异常所出现的原因和解决办法。如果开发过程中内部使用的是 Unchecked Exception ,那么对于这个任务简直就麻烦了。没办法,开发人员一个个的自我进行检查然后统计吧,但是往往这样的统计总会有漏网之鱼。现在的 MSDN 中的异常信息糟糕的很,最底层的公有库的异常信息内容可能完整一点,但是上层的库的异常信息糟糕的不行,根本不能完整的报全所有出错的可能性。

你可以想象的出,一个库函数的异常信息不完整,对于他的用户来说,是多么不友好的事情。假设 MSDN File.Open() 会抛出 IOException ,你的程序就很难想到很规矩的对 IOException 做了 catch ,然后提示用户检查相应位置的文件是否存在 / 被打开等。别指望 MSDN 的那些信息能够对终端用户有多大的帮助,太多不懂计算机的人在傻呆呆的握着鼠标了。再加上 MicroSoft 的提示信息本身就存在着“答非所问”,“莫名其妙”的事情,用户看到这些情况就更不知道怎么解决问题了。再加上自己的应用程序中会弹出一个个“蹩脚”的运行时错误的错误框,真的不是一个很如意的创作。

        但是,如果使用的是 Checked Exception ,这时候编译器会强迫你的外部接口的异常相当的完整,最起码可以做到比 MSDN 的异常类型齐整。

 

 

 

 

posted on 2006-06-03 21:22 jinfeng_wang 阅读(1788) 评论(5)  编辑  收藏 所属分类: javaThinkingview.Net

评论

# re: Checked Exception VS UnChecked Excetion (续2) 2006-06-03 22:32 quitgame
Checked Exception 确实有很多好处,但需要开发人员具有对异常比较深刻的理解,否则写出的代码可能是 throws Exception catch(Exception) 这种,还不如没有,  回复  更多评论
  

# re: Checked Exception VS UnChecked Excetion (续2) 2006-06-04 00:06 CowNew开源团队
总感觉.net的异常机制不如java的好,异常不捕获也照样能编译,好可怕。  回复  更多评论
  

# re: Checked Exception VS UnChecked Excetion (续2) 2006-06-08 09:47 denis长明
@CowNew开源团队
Java 里面的异常是分成两种的了,正是标题所说的checked 和 unchecked的 checked的都是从Exception继承过来的,只要在程序里面throw了就一定要catch,否则编译通过不了, 还有一种继承自RuntimeException 这里面的异常可以随便throw, 可以不用catch, 现在很多框架都设计成unchecked的了, 比如很多数据库操作, SqlException 很多人catch了后只是log了一下, 根本就没有做任何的处理,这样的异常不catch也罢,为了给客户一个友好的界面,你可以在框架最外层catch一下Throwable然后转换成对应的错误信息.   回复  更多评论
  

# re: Checked Exception VS UnChecked Excetion (续2) 2006-06-08 23:11 jinfeng_wang
"SqlException 很多人catch了后只是log了一下, 根本就没有做任何的处理"

你只是假设了某些用户的习惯,但是对于某一部分的用户,他想做一些特殊的处理操作,那么单纯的SqlException能够满足要求么?
其次,如果用户的习惯都改过来了,那么SqlClient如何应对这样的要求?SqlClient重新实现??
再次,我们现在谈的不局限于SqlException,我们讨论的是方法学,程序设计的方法学。
这个讨论我会继续下去的。
请记住一点,现在很多人已经用“Exception”做为程序流程的控制依据,因为CheckedException是要求客户端捕捉的,而用返回值是不能达到控制用户程序的,所以很多时候CheckedException用来做“程序流程控制”也是合理的。

  回复  更多评论
  

# re: Checked Exception VS UnChecked Excetion (续2) 2008-09-17 11:35 aaaa
asdasd  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: