ElasticSearch ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];
阿新 • • 發佈:2021-09-05
異常機制
異常型別:
- 檢查性異常
- 執行時異常
- 錯誤ERROR
- 異常的關鍵字
- try,catch,finally,throw,throws
public class Test { public static void main(String[] args) { int a = 1; int b = 0; //假設要捕獲多個異常:從小到大! try{//try監控區域 System.out.println(a/b); }catch(Error e){//catch(想要捕獲的異常型別) 捕獲異常 System.out.println("Error"); }catch(Exception e){ System.out.println("Exception"); }catch(Throwable t){ System.out.println("Throwable"); } finally{//處理善後工作 System.out.println("finally"); } //finally 可以不要finally, 假設IO,資源,關閉 }
- 丟擲異常
public class Test { public static void main(String[] args) { try { new Test().test(1,0); } catch (ArithmeticException e) { e.printStackTrace(); } } public void test(int a,int b) throws ArithmeticException{ if(b==0){ throw new ArithmeticException();//主動丟擲異常,一般在方法中使用 } //System.out.println(a/b); } }
自定義異常
- 處理執行異常時,採用邏輯去合理規避同時輔助try-catch處理
- 在多重catch塊後面,可以加一個catch(Exception)來處理可能會被遺漏的異常
- 對於不確定的程式碼,也可以加上try-catch,處理潛在的異常
- 儘量去處理異常,切忌只是簡單的呼叫printStackTrace()去列印輸出
- 具體如何處理異常,要根據不同的 業務需求和異常型別去決定
- 儘量新增finally語句快去釋放佔用的資源