的結束我有一個類Game
與以下簽名的構造函數:Java不考慮失敗的方法分支
public Game(String[] boardState) throws InvalidStringsInputException, WrongNumberOfMarksException
並且在junit4測試用例的方法:
public static Game newGameFromStringsSuccessful(String[] input) //it is the line 9
{
try
{
return new Game(input);
}
catch (WrongNumberOfMarksException exception)
{
fail("Caught exception where it shouldn't be");
}
catch (InvalidStringsInputException exception)
{
fail("Caught exception where it shouldn't be");
}
}
我使用Eclipse和它爲我的錯誤: This method must return a result of type Game line 9 Java Problem
如果我插入兩個兩端塊,錯誤消失,但我的問題沒有:爲什麼即使在調用fail()方法後,java也想要它?
下面的答案涵蓋了如何避免這種情況。不過,我認爲重要的是要注意這可能是一個糟糕的設計。我不認爲你需要在這裏拋出異常,你應該確保input []永遠不會失效。或者如果這是不可能的,在構造函數中有一個默認設置可以重新使用。 – MaxAlexander
@MaxAlexander我需要那些防禦性編程的例外。 – CrabMan