2017-06-29 100 views
-3

我在這裏有一個代碼塊的問題。我希望能夠顯示僅包含單詞「LANTALK」的文件的輸出。但我的看法似乎並不正確。你知道在這種情況下應該拋出哪個例外嗎?我會在這種情況下拋出哪個例外?

try 
    { 
    sc = new Scanner(filename); 
     while(sc.hasNext()) 

      { 
      String line=sc.nextLine(); 
      if(line.contains("LANTALK")) 
      System.out.println(line); 
      } 

    } catch (FileNotFoundException e) 
      { 
       System.out.println("The file \""+log+"\" was not found"); 
      } 
+0

你是什麼意思「不正確」?僅供參考'IOException'是'FileNotFoundException'的父親,以防您找到文件以外的其他I/O問題。 – Mena

+0

只是e.printStacktrace() –

+0

意思是它不會編譯,對不起。 IOException不會讓它編譯。 –

回答

0

只需使用e.printStackTrace()

try 
    { 
    sc = new Scanner(filename); 
     while(sc.hasNext()) 

      { 
      String line=sc.nextLine(); 
      if(line.contains("LANTALK")) 
      System.out.println(line); 
      } 

    } catch (FileNotFoundException e) 
      { 
       e.printStackTrace(); 
      } 
0

這一切都取決於這種方法和可能出現的異常將被加工。 也許你不應該拋出異常,而是返回表示文件是否包含該關鍵字的布爾值。例如:

private boolean isValidFile(final String filename) throws IOException 
{ 
    FileReader fr = new FileReader(filename); 
    BufferedReader br = new BufferedReader(fr); 
    String line; 
    while((line = br.readLine()) != null) 
    { 
     if(line.contains("LANTALK")) 
     { 
      return true; 
     } 
    } 
    return false; 
} 
相關問題