如何捕获java.lang.NoClassDefFoundError?

灰烬

我制作了一个使用elf文件(* .a和* .o)并提供方法名称列表的应用程序,但是如果有人将任何文件重命名为* .a或* .o,它将显示:

Exception occurred during event dispatching:
java.lang.NoClassDefFoundError: org/eclipse/core/resources/IWorkspaceRunnable
    at org.eclipse.cdt.utils.AR.<init>(AR.java:237)
    at com.lge.windowELF.ElfBinaryArchive.<init>(ElfBinaryArchive.java:24)
    at com.lge.windowELF.ELFParserLibraryFile.createBinaryArchive(ELFParserLibraryFile.java:230)
    at com.lge.windowELF.ELFParserLibraryFile.<init>(ELFParserLibraryFile.java:46)
    at com.lge.windowELF.ELFWrapper.<init>(ELFWrapper.java:36)
    at com.lge.windowELF.ELF_UIIntegrated.actionPerformed(ELF_UIIntegrated.java:510)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)

在这种情况下,我想给出一些警告信息。try / catch不会捕获此异常。

布哈克·辛迪:

不鼓励来捕捉ErrorJavaDoc指出:

An Error是Throwable的子类,它指示严重的问题,而合理的应用程序不应尝试抓住这些问题。

我的建议是您整理出代码,NoClassDefFoundError并担心代码抛出的异常。

我宁愿在代码中,当类尝试打开ELF文件时,InvalidELFFileExceptionElfBinaryArchive构造函数类抛出(有根据的猜测)(或包装该类并throws在实例化时执行一个)。这样,如果存在无效的ELF文件,则会引发体面的异常。

或者,确保org.eclipse.core.resources.IWorkspaceRunnable必须将其放在CLASSPATH中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章