1. 程式人生 > 其它 >在CSS中使用JS變數Vue專案

在CSS中使用JS變數Vue專案

異常

  1. 異常分為兩大類,執行時異常和編譯時異常
  2. 執行時異常,編譯器不要求強制處置的異常。一般是指程式設計時的邏輯錯誤,是程式設計師應該避免出現的異常。java.lang.RuntimeException類及它的子類都是執行時異常
  3. 對於執行時異常,可以不作處理,因為這類異常很普遍,若全處理可能會對程式的可讀性和執行效率產生影響
  4. 編譯時異常是編譯器要求必須處置的異常

細節:

1.如果異常發生了,異常後面的程式碼不會執行,直接進入catch塊

2.如果異常沒有發生,則順序執行try的程式碼塊,不會進入catch塊

3.如果希望不管是否發生異常,都執行某段程式碼(比如關閉連線,釋放資源等)則使用如下程式碼-finally

4.可以有多個catch語句,捕獲不同的異常(進行不同的業務處理),要求父類異常在後,子類異常在前,比如(Exception在後,NullPointerException在前),如果發生異常,只會匹配一個catch

5.可以進行try-finally配合使用,這種用法相當於沒有捕獲異常因此程式會直接崩掉/退出.應用場景:就是執行一段的程式碼,無論是否發生異常都必須執行某個業務邏輯

package com.example.try_;



/**
 * @Author 10704
 * @Time 2022/5/9 12:25
 * @Version 1.0
 */
public class TryDetail {
    public static void main(String[] args) {
        //1.如果異常發生了,異常後面的程式碼不會執行,直接進入catch塊
        //2.如果異常沒有發生,則順序執行try的程式碼塊,不會進入catch塊
        //3.如果希望不管是否發生異常,都執行某段程式碼(比如關閉連線,釋放資源等)則使用如下程式碼-finally
        try {
            String name = "郜慶輝";
            int a = Integer.parseInt(name);
            System.out.println("數字a=" + a);
        } catch (NumberFormatException e) {
            System.out.println("異常資訊=" + e.getMessage());
        }finally {
            System.out.println("finally程式碼塊被執行");
        }

        System.out.println("程式繼續執行");
    }
}

package com.example.try_;

/**
 * @Author 10704
 * @Time 2022/5/9 12:36
 * @Version 1.0
 */
public class TryDeatail02 {
    public static void main(String[] args) {
        // 4.可以有多個catch語句,捕獲不同的異常(進行不同的業務處理),
        // 要求父類異常在後,子類異常在前,比如(Exception在後,
        // NullPointerException在前),如果發生異常,只會匹配一個catch

        try {
            Person person = new Person();
            person = null;
            System.out.println(person.getName());// NullPointerException
            int n1 = 10;
            int n2 = 0;
            int res = n1 / n2;          // ArithmeticException
            System.out.println("res=" + res);

        } catch (NullPointerException e) {
            System.out.println("空指標異常=" + e.getMessage());
        } catch (ArithmeticException e) {
            System.out.println("算數異常=" + e.getMessage());
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

class Person {
    private String name = "jack";

    public String getName() {
        return name;
    }
}
package com.example.try_;

/**
 * @Author 10704
 * @Time 2022/5/9 12:50
 * @Version 1.0
 */
public class TryDetail03 {
    public static void main(String[] args) {
        //5.可以進行try-finally配合使用,這種用法相當於沒有捕獲異常
        //因此程式會直接崩掉/退出.
        //應用場景:就是執行一段的程式碼,無論是否發生
        // 異常都必須執行某個業務邏輯
        try {
            int n1 = 10;
            int n2 = 0;
            System.out.println(n1 / n2);
        } finally {
            System.out.println("執行了finally");
        }

        System.out.println("程式繼續執行");
    }
}

throws

基本介紹:

  1. 如果一個方法(中的語句執行時)可能生成某種異常,但是並不能確定如何處理這種異常,則此方法應顯示地宣告丟擲異常,表明該方法將不對這些異常進行處理,而由該方法的呼叫者負責處理
  2. 在方法宣告中用throws語句可以宣告丟擲異常的列表,throws後面的異常型別可以是方法中產生的異常型別,也可以是它的父類。

throws細節

package com.example.throws_;

import java.io.FileInputStream;
import java.io.FileNotFoundException;

/**
 * @Author 10704
 * @Time 2022/5/9 15:15
 * @Version 1.0
 */
public class ThrowsDetail {
    public static void main(String[] args) {
        f1();
    }

    public static void f1() {
        // 1.對於編譯異常,程式中必須處理,比如使用try-catch或者throws
        // 2.對於執行時異常,程式中如果沒有處理,預設就是throws的方式處理

        int n1 = 10;
        int n2 = 0;
        int res = n1 / n2;
    }
}

class Father {
    public void method() throws RuntimeException {
    }
}

class Son extends Father {
    // 3.子類重寫父類的方法時,對丟擲異常的規定:子類重寫的方法
    //  所丟擲的異常型別要麼和父類丟擲的異常一致,要麼為父類丟擲異常型別的子類異常
    @Override
    public void method() throws ArithmeticException {
    }


    public static void f2() throws FileNotFoundException {
        // 1.因為f3()方法丟擲的異常是一個編譯異常
        // 2.這時就要f2()必須處理這個編譯異常
        // 3.在f2()中,處理這個異常的辦法要餓時try-catch-finally,或者繼續throws這個編譯異常

        f3();
    }

    public static void f3() throws FileNotFoundException {
        FileInputStream file = new FileInputStream("d://aa.txt");
    }

    public static void f4() {
        // 1.在f4中呼叫f5這個方法是可以的,不需要顯示的throws或者try
        // 2.原因是f5()丟擲的異常是執行異常
        // 3.而在Java中,並不要求程式設計師顯示處理,因為有預設的處理機制
        f5();
    }

    public static void f5() throws RuntimeException {

    }
}

自定義異常

package com.example.customexception_;

public class Customeexception_ {
    public static void main(String[] args) {
        //要求年齡範圍在18-120之間,否則丟擲一個自定義異常
        int age = 190;

        if (!(age >= 18 && age <= 120)) {
            throw new AgeException("年齡必須輸入從18~120");

        }
    }
}

// 自定義一個異常
// 1.一般情況下,我們自定義異常是繼承RuntimeException
// 2.即把自定義異常做成執行時異常,好處是執行時異常可以使用預設的處理機制
class AgeException extends RuntimeException {
    public AgeException(String message) {
        super(message);
    }
}

throw和throws的區別

意義 位置 後面跟的東西
throws 異常處理的一種方式 方法宣告處 異常的型別
throw 手動生成異常物件的關鍵字 方法體中 異常物件

常見的七大異常(前五種常用)

  1. ClassCastException(類轉換異常)

    1. 當試圖將物件強制轉換為不是例項的子類時,丟擲該異常。
  2. IndexOutOfBoundsException(陣列越界)

    1. 用非法索引訪問陣列時丟擲的異常。如果索引為負或大於等於陣列大小,則該索引為非法索引
  3. NullPointerException(空指標異常)

    1. 當應用程式試圖在需要物件的地方使用 null 時,丟擲該異常
  4. NumberFormatException (數字格式不正確異常)

    1. 當應用程式試圖將字串轉換成一種數值型別,但該字串不能轉換為適當格式時,丟擲該異常 => 使用異常我們可以確保輸入是滿足條件數字.
  5. ArithmeticException (數學運算異常)

    1. 當出現異常的運算條件時,丟擲此異常。例如,一個整數“除以零”時
  6. IllegalAccessException(安全許可權異常)

    1. 這個異常的解釋是“沒有訪問許可權“,當應用程式要呼叫一個類,但當前的方法即沒有對該類的訪問許可權便會出現這個異常。對程式中用了Package的情況下要注意這個異常。
  7. IOException(輸入輸出異常)

    1. 一般讀寫檔案會出現這個異常,比如你想從磁碟上讀一個檔案到你寫的程式,如果硬碟上沒有這檔案,java虛擬機器就會報這個異常。