public void foo() throws SpecificException1, SpecificException2 { //正确的做法 } 1. 2. 3)尽可能的捕获具体异常 try { someMethod(); } catch (Exception e) { LOGGER.error("method has failed", e); } 1. 2. 3. 4. 5. 这么做的问题是,如果你调用的方法中多了一个新的异常,他本来的目的...
try-catch 不仅可以嵌套在 try 代码块中,还可以嵌套在 catch 代码块或 finally 代码块,finally 代码块后面会详细介绍。try-catch 嵌套会使程序流程变的复杂,如果能用多catch捕获的异常,尽量不要使用 trycatch 嵌套。特别对于初学者不要简单地使用Eclipse的语法提示不加区分地添加 try-catch 嵌套,要梳理好程序的流程...
public class ExceptionHierarchyExample { public static void main(String[] args) { // 处理已检查的异常 try { FileInputStream file = new FileInputStream("nonexistentfile.txt"); } catch (FileNotFoundException e) { System.out.println("Checked Exception: " + e.getMessage()); } // 处理未检...
publicclassExceptionExample{publicstaticvoidmain(String[]args){try{// 可能会抛出异常的代码thrownewSpecificException();}catch(Exceptione){// 捕获异常并进行处理if(einstanceofSpecificException){// 异常是 SpecificException 类型System.out.println("捕获到了 SpecificException 异常!");}else{// 异常不是 Sp...
catch (SpecificException e) { // 正确的做法:记录异常信息 log.error("发生特定异常:", e); } 3. 提供足够的异常信息 在抛出异常时,提供足够的异常信息可以帮助调试问题。 java throw new SpecificException("发生特定异常,参数值为:" + parameterValue); ...
public void foo() throws SpecificException1, SpecificException2 { //正确做法 } ### 始终只捕获那些可以处理的异常 catch (NoSuchMethodException e) { throw e; //这代码一点用都没有 } 这是一个基本概念,当你能够处理他时,你再捕获这个异常,否则永远都不要捕获他。如果你不能在catch块中处理它,那么就...
publicvoidfoo()throws SpecificException1,SpecificException2{//正确做法}### 始终只捕获那些可以处理的异常catch(NoSuchMethodException e){throwe;//这代码一点用都没有} 这是一个基本概念,当你能够处理他时,你再捕获这个异常,否则永远都不要捕获他。
publicvoidcatchMostSpecificExceptionFirst(){try{ doSomething("A message"); }catch(NumberFormatException e) { log.error(e); }catch(IllegalArgumentException e) { log.error(e) } } 6. 不要捕获Throwable Throwable是所有异常和错误的父类。你可以在catch语句中捕获,但是永远不要这么做。
publicvoidfoo() throws SpecificException1, SpecificException2{//正确方式} 捕获具体的子类而不是捕获 Exception 类# Copy try{someMethod(); }catch(Exceptione) {//错误方式LOGGER.error("method has failed", e); } 捕获异常的问题是,如果稍后调用的方法为其方法声明添加了新的检查性异常,则开发人员的意图...
} catch (IOException e) { log.error(e); } } 2. 指定具体的异常 尽可能的使用最具体的异常来声明方法,这样才能使得代码更容易理解。 public void doNotDoThis() throws Exception { ... } public void doThis() throws NumberFormatException { ...