论坛首页 Java企业应用论坛

有关异常使用的一点疑惑

浏览 8440 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-04-11  
因为你的总的思路还是利用异常来传递信息和控制流程,因此在这样的情况下,除了rethrow时,增加额外的信息,看来没有更好的办法。

但是考虑设计一个或多个容纳编译结果的类如何?用它们在调用和被调用之间传递信息,函数的返回值也可以同时利用(例如表明编译成功还是失败)。这样做也许更加规范化,结构化。也许它是一种值得考虑的、避免了如上方式使用exception的思路。
0 请登录后投票
   发表时间:2005-04-12  
Code Compile(Func f[,CompileResult result]) {
   try {
    CompileParameter(Func f);
  } cathc (CompileParameterException e) {
       // 可以转译抛出异常,这是可以不要参数result
     // 还可以result.setResult(e);
  }
}
0 请登录后投票
   发表时间:2005-04-12  
ajoo 写道
是啊。我同意你对耦合的·看法。看来,重复的rethrow是唯一办法了。


如果你觉得throw exception是不好的,我觉得也许还有其他一个方法哦。 学习log4j的功能,它可以记录执行路径的。

这里可能有两个方法:
1、直接使用log4j,帮你跟踪执行的过程
2、研究log4j的代码,然后加入到你的代码中

嘴上说说  莫怪莫怪~~
0 请登录后投票
   发表时间:2005-04-13  
这种情况我们也是用的rethrow,好像没什么好办法。

PS:发现ajoo的一个特点,就是无数人看不明白他的意思。
0 请登录后投票
   发表时间:2005-04-13  
引用
我现在也逐渐倾向使用runtime exception.主要是考虑到不要给架构带来影响,不强迫引入太多exception wrapping.

这其实就是假定了Checked Exception 是失败的。在我看来runtime exception 就像在面向过程语言(如C)中的if (error) exit(errorCode);一样,将错误仍给容器(如操作系统,应用服务器等)处理。
0 请登录后投票
   发表时间:2005-05-10  
编译的错误对于编译器来说并非异常,而是正常。
0 请登录后投票
   发表时间:2005-05-11  
捉到异常要做两件事情:

1)记录信息: 这个可以解决你说的“不知道异常信息”的问题
2)处理或者rethrow,如果不处理,当然要rethrow啦, 这个可以解决你说的“异常的层次的问题)

其实用RuntimeException就可以解决所有问题,其实,我们不可能在程序中对异常采取什么”补充操作“而让我们的系统正确的运行,感觉CheckException都有点”人工资能“了!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics