> 文章列表 > java捕获编译时异常exception和运行时错误error的方法

java捕获编译时异常exception和运行时错误error的方法

java捕获编译时异常exception和运行时错误error的方法

背景

最近使用jacob的时候,由于编译没问题,运行时报如下,我

 查看代码发现是调用jacob文件时,是下面的方法报错,

ComThread.Release();

 这个方法编译不报错,是因为doCoUninitialize使用native修饰的,表名这个方法实现是需要调用dll等方式实现

 public static synchronized void Release() {if (JacobObject.isDebugEnabled()) {JacobObject.debug("ComThread: before clearObjects");}ROT.clearObjects();if (JacobObject.isDebugEnabled()) {JacobObject.debug("ComThread: before UnInit");}doCoUninitialize();if (JacobObject.isDebugEnabled()) {JacobObject.debug("ComThread: after UnInit");}}
public static native void doCoUninitialize();

 我添加了try-catch,使用Exception尝试捕获,

catch (Exception e)

发现不好使,原来这个错误的父类跟Exception无关,如下图,跟Error有关

 

尝试用如下代码捕获

    try{ComThread.Release();}catch (Error error){JOptionPane.showMessageDialog(null,"Jacob配置错误,请把文件夹里的\\n" +"jacob-1.16-M1-x64.dll\\n" +"和\\n" +"jacob-1.16-M1-x86.dll\\n" +"两个文件复制放到目录:C:\\\\Windows\\\\System32,\\n" +"详细参考菜单【文件】——>【常见问题】","Jacob配置错误",JOptionPane.ERROR_MESSAGE);}

发现可以

 

参考

Java:详解Java中的异常(Error与Exception)_王小二(海阔天空)的博客-CSDN博客《Java:详解Java中的异常(Error与Exception)》《Java:简述Java中的自定义异常》《Java:简述throw-throws异常抛出》《Java:简述try-catch-finally异常捕获》《Java:简述try-catch-finally中return返回》一、 异常机制的概述 异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机...https://blog.csdn.net/qq_29229567/article/details/80773970

java.lang.NoClassDefFoundError可以捕获_iteye_1456的博客-CSDN博客原本以为类不存在的Error不能捕获,想不到是可以的,记录一下。注意,这和反射遇到的“java.lang.ClassNotFoundException”是不一样的。 以下代码,编译完后,我删除了Demo$T2.class,如果不添加try-catch,会出现:Exception in thread "main" java.lang.NoClassDefFoundError: com/a...https://blog.csdn.net/iteye_1456/article/details/82301193