2012-01-25 87 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

相关问题