0
如果我有一些簡單的代碼:@Contract並拋出異常
public int doSomething(final String str)
{
try
{
return Integer.parseInt(str);
}
catch (final NumberFormatException e)
{
throw new IllegalArgumentException("Bad");
}
}
一切都很好,但如果我要帶異常創作,並將其移動到它自己的方法:
public int doSomethingElse(final String str)
{
try
{
return Integer.parseInt(str);
}
catch (final NumberFormatException e)
{
doThrow();
}
}
public void doThrow()
{
throw new IllegalArgumentException("Bad");
}
那麼代碼不再在IntelliJ中編譯,因爲它不知道doThrow()
將始終引發異常,因此抱怨在該路徑中沒有返回值。
在我看來,這是IntelliJ合同的設置的類型,但如果我試圖將@Contract("_ -> fail")
註釋添加到doThrow()
它沒有幫助。我怎樣才能完成這項工作(在doThrow()
這個醜陋的電話號碼後加上return null
)。
第二種解決方案他重新對我來說是好的,我會用它。謝謝! – jgm