抓住别人的例外

时间:2010-07-01 18:31:21

标签: java exception-handling

我们有第三方java代码,它会抛出无头的异常。我们可以在代码中捕获它吗?问题是我们如何知道所有第三方代码(包含在jar文件中)将抛出异常。我们没有第三方API文档。

4 个答案:

答案 0 :(得分:1)

通过将这些第三方调用包含在try / catch块中,您可以在代码中捕获它。

只要知道没有文档的异常类型,那就更难了。通过在开发期间打印出异常类型来进行试验和错误。或者在非常紧凑的try / catch块中开发,以便开放Exception

答案 1 :(得分:0)

那么,

在理想情况下,您应该停止使用该第三方API。由于您已经在使用它,如果您编写包装并使用它会更好。

  • 构建中间层
  • 明确定义自定义例外
  • 尝试分析第三方API主要方法,并查看可能出现异常的易受攻击点
  • 尽可能及时扔掉它们

答案 2 :(得分:0)

我不清楚你的无头例外是什么意思。

挑战在于,如果您不知道哪些方法可能存在异常,则每次调用该第三方API时都必须捕获。您可能希望在该API上设置一些抽象层,仅使用try{call()} catch(Exception e){...}

委托和包装每个调用

答案 3 :(得分:0)

你在谈论java.awt.HeadlessException吗?根据文件:

  

在不支持键盘,显示器或鼠标的环境中调用依赖于键盘,显示器或鼠标的代码时抛出。

当然,你可以尝试抓住它,但这对你有什么帮助?该第三方库可能无法使用例如没有键盘,显示器或鼠标的服务器。