Exception 和 Error 都继承了 Throwable 类。只有 Throwable 的可以被 throw 和 catch。Exception 是程序正常情况下可以预料的,Error 通常会导致程序不可恢复。Exception 分为可检查异常和不检查异常,不检查异常就是运行时异常。
NoClassDefFoundError 通常发生在打包错误导致编译时找得到包而运行时找不到包导致的项目不能启动的错误,ClassNotFoundException 发生在比如用 Class.fromName() 加载一个不存在的包导致的 Exception。
例如:
try { // 业务代码 // … Thread.sleep(1000L); } catch (Exception e) { // Ignore it } 复制代码
public void readPreferences(String fileName){ //...perform operations... InputStream in = new FileInputStream(fileName); //...read the preferences file... } public void readPreferences(String filename) { Objects. requireNonNull(filename); //...perform other operations... InputStream in = new FileInputStream(filename); //...read the preferences file... } 复制代码
可考虑使用自定义异常,方便定位,同时注意不要暴漏敏感信息。如用户信息不允许输出。