2012-01-25 127 views
0

我從一個文件夾,使用乾淨的代碼存儲在tagNode如何在Java拋出異常之後繼續執行?

try { 
    Document doc = new DomSerializer(props, true).createDOM(tagNode); 
} catch (Exception ex) { 
ex.printStackTrace(); 
} 

但文件中的一個XML解析器讀取HTML文件是給我的錯誤:

org.w3c.dom.DOMException: INVALID_CHARACTER_ERR: An invalid or illegal XML character is specified. 

我怎麼能繼續運行抓到異常後的程序?


解決方案#1

try 
    { 
      File folder = new File(path); 
      File[] listOfFiles = folder.listFiles(); 
     FileWriter fstream = new FileWriter("dataset.txt"); 
      BufferedWriter br= new BufferedWriter(fstream); 


for (int i = 0; i < listOfFiles.length; i++) {  
{ 
     try { 
      Document doc = new DomSerializer(props, true).createDOM(tagNode); 
     } catch (Exception ex) { 
     ex.printStackTrace(); 
     } 
    } 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
     } 

考慮變通的辦法,爲什麼我收到這個錯誤?

+3

的'try-catch'的全部意義在於,如果發生異常,您可以繼續執行程序,您是否可以發佈您正在執行的異常處理? –

+1

在沒有有效的'doc'的情況下繼續運行程序是否有意義?如果是這樣,只要趕上例外並適當反應。或者你的意思是'在這個異常之後繼續解析? – ChristopheD

+1

[RTFM](http://docs.oracle.com/javase/tutorial/essential/exceptions/index.html) –

回答

2

如果您正在處理的文件列表像你提到你上面只需要try-catch塊是內部的循環:

File folder = new File(path); 
File[] listOfFiles = folder.listFiles(); 
FileWriter fstream = new FileWriter("dataset.txt"); 
BufferedWriter br= new BufferedWriter(fstream); 

for (int i = 0; i < listOfFiles.length; i++) 
{ 
    try 
    { 
     Document doc = new DomSerializer(props, true).createDOM(tagNode); 
    } 
     catch (DOMException de) 
     { 
     de.printStackTrace(); 
     } 
} 
4

使用try/catch塊

try{ 
    Document doc = new DomSerializer(props, true).createDOM(tagNode); 
} 
catch(DOMException e){ 
    //error handling here if you want 
} 

//we now hit more code 
+0

完成你覺得畝解決方案#1? – tnaser

相關問題