在一個假設的情況下,我有一個這樣的類:靜態代碼塊可以拋出異常嗎?
import java.io.File;
import java.util.Scanner;
class X
{
static Scanner scanner;
static
{
scanner = new Scanner(new File("X.txt"));
}
}
編譯時,我得到
未報告exeption
java.io.FileNotFoundException
;必須被捕或宣佈投擲
因爲public Scanner(File source) throws FileNotFoundException
。
爲了解決這個問題,我可以把一個try/catch語句scanner = new...
行:
static
{
try
{
scanner = new Scanner(new File("X.txt"));
}
catch(Exception e)
{
e.printStackTrace();
}
}
然而,有沒有什麼辦法,我可以這樣做:
static throws java.io.FileNotFoundException
{
scanner = new Scanner(new File("X.txt"));
}
這是一個假設的情況。請不要說「那麼你爲什麼要這麼做?」或「這是製作掃描儀的更好方法!」
坦率地說,我在這裏看不到問題。 –