我有一個構造函數接受一個字符串作爲參數。我想在每次傳入構造函數的字符串中包含任何不是「A」,「C」,「G」或「T」的字符串時拋出運行時異常。目前,這是我的代碼是什麼樣子:構造函數拋出運行時異常
public DNAStrandNovice(String strand) {
passedStrand = strand;
if (passedStrand.contains("a") || passedStrand.contains("c")
|| passedStrand.contains("g") || passedStrand.contains("t")) {
throw new RuntimeException("Illegal DNA strand");
} else if (passedStrand.contains("1") || passedStrand.contains("2")
|| passedStrand.contains("3") || passedStrand.contains("4")
|| passedStrand.contains("5") || passedStrand.contains("6")
|| passedStrand.contains("7") || passedStrand.contains("8")
|| passedStrand.contains("9") || passedStrand.contains("0")) {
throw new RuntimeException("Illegal DNA Strand");
} else if (passedStrand.contains(",") || passedStrand.contains(".")
|| passedStrand.contains("?") || passedStrand.contains("/")
|| passedStrand.contains("<") || passedStrand.contains(">")) {
throw new RuntimeException("Illegal DNA Strand");
}
}
我覺得這可能以更簡潔的方式來實現,但我不知道怎麼辦。現在我只是檢查每個不是大寫字母「A」,「C」,「G」或「T」的字符,並拋出一個運行時異常,但我覺得它太枯燥乏味,編程風格不好。有人有主意嗎?
從構造函數中拋出異常不是一個好主意。請參閱http://stackoverflow.com/questions/1371369/can-constructors-throw-exceptions-in-java –
這是一個家庭作業的任務。我們被告知要這樣做。 – user122947
爲什麼在字符串*'contains' *時拋出異常*你想要什麼?只有當*不包含你想要的東西時,你不應該拋出異常嗎? – ADTC