【问题标题】:How do i keep a caught exception from reporting as uncaught in a blackberry app?如何防止捕获的异常在黑莓应用程序中报告为未捕获?
【发布时间】:2009-02-11 21:02:15
【问题描述】:

编辑:这仅适用于模拟器,但我仍然想知道是否有解决方案。

我在一个黑莓应用程序中有一些代码在某个时间点捕获异常,在 catch 块中进行一些处理,然后重新抛出异常,该异常在调用堆栈的较高位置被捕获。但是,即使我稍后确实捕获了它,我仍然会在模拟器上看到一条错误消息,以及设备日志中的 jvm 104 错误。当我已经捕获到它抱怨的异常时,我还需要做些什么来抑制显示此错误屏幕吗?

【问题讨论】:

    标签: exception blackberry java-me


    【解决方案1】:

    您是否尝试过 JDE 首选项菜单、模拟器选项卡、调试子选项卡?那里有一个标记为“当异常被catch(Throwable)捕获时不要停止执行”的选项。也许那样做? (这假设您从 JDE 启动模拟器)

    【讨论】:

    • 我通常使用 Eclipse 插件,但其他受影响的人只是直接启动模拟器。由于这不是设备问题,我想知道在启用该选项的情况下从 jde 启动时是否有命令行选项可以执行此操作。
    • 尝试使用 -help 选项运行 fledge.exe(在您的模拟器目录中)。看起来可能有一个命令行选项可以使用 /ignore-error={int} 或在您的情况下禁用特定错误 /ignore-error=104
    【解决方案2】:

    你真的在做一个 catch(Throwable) 吗?正如 Marc 所说,这将显示在模拟器的错误日志中。 RIM 不鼓励在性能受到影响时以这种方式做事(我会避免抱怨他们的 JVM 设计),因此这可能是通过以不同方式捕获事物来解决此问题的另一个原因(例如,不是 Throwable,而是更具体的异常类型- 除非你真的需要那个堆栈跟踪)。

    【讨论】:

    • 是的,就是这样。它实际上不是我的代码,而是我们已经集成到我们的产品中的一个开源库,我相信它使用堆栈跟踪执行特定的操作。我认为在这方面可以做的不多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多