我在try-exception
之前宣佈Scanner infil
e,但由於某種原因它說變數可能未被初始化?變量可能未從Scanner初始化?
Scanner infile;
try
{
infile = new Scanner(file);
}
catch(FileNotFoundException f)
{
System.out.println("Wrong File Path");
}
while (infile.hasNext())
{
System.out.print("Testing While loop");
但我會在最後使用構造函數。移動'while'循環並在'try'內部聲明構造函數會導致很多錯誤和更復雜的編程。對 ? @ T.J.Crowder – DkgMarine
剛剛編輯了我的最新評論。請給我你的意見? – DkgMarine
@DkgMarine:不會。通過在所有*你的邏輯上放置一個'try'並在最後處理異常,你可以讓事情變得更加複雜,而不是更多。但是你有一個選擇:如果你不想把你的邏輯放在'try'裏面(這是最好的做法),你可以在'catch'塊中設置'infile = null',然後把循環改爲' while(infile!= null && infile.hasNext())'。但是,不是最佳實踐。您可能會發現[Java例外](https://docs.oracle.com/javase/tutorial/essential/exceptions/)有用。 –