我從遊戲書中得到這段代碼。作者解釋說它會打開音樂文件爲什麼拋出RuntimeException錯誤而不是IOException消息?
public Music newMusic(String filename) {
try {
AssetFileDescriptor assetDescriptor = assets.openFd(filename);
return new AndroidMusic(assetDescriptor);
} catch (IOException e) {
throw new RuntimeException("Couldn't load music '" + filename + "'");
}
}
方法AssetFileDescriptor.openFd(filename) throws a IOException
。
我的問題是:爲什麼我們需要拋出RuntimeException
而不是IOException
消息?
我可以看到的主要缺點是,由於IOException是一個檢查異常,並且由於該方法沒有處理它,所以方法頭必須有'throws IOException'。 – saiarcot895
指出的原因是IOException的使用會使「調用代碼相當混亂」。我不明白 –