【202天】黑馬程序員27天視頻學習筆記【Day19-上】

叨逼叨兩句

  1. 該請吃飯了~
  2. 羅胖第327期節目《行業與命運》講的很是好,新行業裏的創業公司是高風險,可是參與其中的我的,倒是低風險,爲何?關鍵在於得到新行業的從業經驗,即使你在的公司破產也不要緊,只要你在這個新行業中成爲了稀缺的人才,還怕個球~。
  3. 區塊鏈應用開發頗有多是將來我能參與的大的創業機會,人工智能反而不太可能,即使10年後成爲了其中一員,也只是得到較高工資而已。
  4. 固然,即使如此,我將來也要學人工智能,畢竟,很酷炫啊!!!哈哈!!!

19-01:異常概述和分類

Error:錯誤

這種是相似服務器宕機,數據庫崩潰等錯誤程序員

Exception:異常

異常的繼承體系

  1. Throwable數據庫

    1. Error
    2. Exception服務器

      1. RuntimeException【這種異常是因爲程序員錯誤致使的,必須經過修改源代碼進行更正】

19-02:JVM默認是如何處理異常的

  1. 查看異常時從下往上一層層的找
  2. 出現異常時,底層實際是new ArithmeticException(:/by zero)
  3. 一層層往上拋,最後拋給了JVM處理。
  4. JVM有一個默認的異常處理機制,它會將該異常的名稱,異常的信息,異常出現的位置打印在控制檯上,同時將程序中止運行。

19-(03-04):try...catch的方式處理異常

try、catch、finalize的含義

  1. try:用於檢測異常
  2. catch:用於捕獲異常
  3. finally:用於釋放資源

異常處理的兩種方式

  1. try...catch...finally區塊鏈

    1. try...catch
    2. try...catch...finally
    3. try...finally
  2. throws

try...catch處理一個異常

  1. try。。。catch把異常處理完以後,後續代碼能夠繼續運行
package com.test.demo001;


public class Demo31 {
        public static void main(String[] args) {
            Demo01 d = new Demo01();
            try{
                int i = d.div(10, 0);    //底層建立了一個new ArithmeticException("/ by zero"),可是i接不住
                System.out.println(i);    
            } catch(ArithmeticException e){ //這裏至關於 ArithmeticException e = new ArithmeticException("/ by zero")
                System.out.println("出錯了"+ e);  
                System.out.println(e);
            }
        }
}

class Demo01 {    
    public int div(int a,int b){
        return a/b;            
    }
}

try。。。catch處理多個異常

  1. 安卓處理異常的方式:由於是客戶端開發,因此直接用Exception e全給接住。
  2. JavaEE處理異常的方式:由於是服務器端開發,因此通常都是底層開發,而後從底層向上拋,最後造成一個錯誤日誌,方便往後查錯作維護。
  3. 大的異常要放後面,小的異常放前面。
package com.test.demo001;


public class Demo31 {
        public static void main(String[] args) {
            int a = 10;
            int b = 0;
            int[] arr = {11,22,33,44,55};
            try{
                System.out.println(arr[1]);
                System.out.println(a/b);
            } catch(ArithmeticException e){
                System.out.println("除數不可爲0");
            } catch(ArrayIndexOutOfBoundsException e){
                System.out.println("越界了");
            } catch(Exception e){  //這個至關於多態
                System.out.println("出錯了");
            }
            

        }
}

19-05:編譯期異常和運行期異常的區別

  1. RuntimeException類及其子類被稱爲運行期異常,是程序員犯的錯誤。其它的異常被稱爲編譯時異常。
  2. 編譯時異常在編譯期不處理就沒法編譯經過【未雨綢繆嘛~】
相關文章
相關標籤/搜索