我想查詢一些狀態,並在故障情況下突破我的方法,但是這種情況也必須防範檢查的異常。在檢查布爾狀態時,是否有更簡單的方法來處理try/catch?
我正在處理它是這樣:
try {
if (!isSomeState()) {
error("Failed to realize state");
return;
}
}
catch (SomeStateException ex) {
error("Failed to realize state");
return;
}
我可以拋出checked異常向下拖放到catch塊。但是,這感覺很髒,因爲異常是在重定向程序流程:
try {
if (!isSomeState())
throw new SomeStateException();
}
catch (SomeStateException ex) {
error("Failed to realize state");
return;
}
它沒有意義有方法拋出此異常,因爲我的意思的描述來處理它在此方法。
更新:
爲了澄清,被查詢的狀態利用套接字I/O,因此投擲延伸IOException
;所以在這種情況下異常本身並不是多餘的。
生成的布爾值表示某些狀態是否設置爲true
或false
。在此異常上返回false
沒有任何意義,因爲在繼續查詢其他狀態時沒有意義,否則該狀態在false
上可能有效。
變化'isSomeState'方法,以便它拋出'SomeStateException',而不是返回'假' –
我已經添加了一些關於布爾狀態意味着什麼的補充澄清。 'false'是一個有效的結果,而異常表示一些'IOException'。 – Zhro