簡體   English   中英

創建和使用我自己的異常類時出現問題

[英]Issue creating and using my own exception class

我有一個JUnit測試類,這是我的新手。 我還嘗試學習如何制作自己的異常類。 我一直在創建BigInt類,其中一個構造函數采用Strings。 這一段代碼在一個數組中循環,它應該檢查每個位置的字符是否為整數。 現在有一個錯誤,指出“ BigIntFormatException的Unreachable catch塊。永遠不會從try語句主體中引發此異常”。為什么會有任何想法?

    String[] s = { " - - 1424", "+ + 14324", "a142432", "1432 3413",
            "+242134.32421", "", "    \n", "\t ++" };
    for (int i = 0; i < s.length; i++) {
        try {
            BigInt b = new BigInt(s[i]);
            assertFalse(true);
        } catch (BigIntFormatException e) {
            assertTrue(true);
        }
    }

到目前為止,這就是我的BigIntFormatException類的樣子,因此對此部分的任何幫助也將不勝感激。

public class BigIntFormatException extends Exception {
    public BigIntFormatException() {
        super();
    }
    public BigIntFormatException(String message) {
        super(message);
    }
}

簡而言之,這種編譯失敗非常明顯: BigInt的構造函數和斷言均未聲明將要拋出BigIntFormatException

由於Exception是已檢查異常的類(意味着您必須將它們包裝在try-catch塊中),因此必須聲明將它們拋出到BigInt的構造函數中。

這就是您要執行的操作。

public BigInt(String str) throws BigIntFormatException {
    // logic
}

您需要在BigInt類中引發異常

    if(/*error condition*/) {
        throw new BigIntFormatException("your message");
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM