1. 程式人生 > 其它 >ElasticSearch ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];

ElasticSearch ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];

異常機制

異常型別:

  • 檢查性異常
  • 執行時異常
  • 錯誤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語句快去釋放佔用的資源