2012-01-25 13 views
0

私はtagNodeJavaでスロー例外を実行した後も実行を継続する方法はありますか?

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

を使用します。

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

あなたがあなたの上に言及のように、ファイルのリストを処理している場合のみ、forループの内側にあるtry-catchブロックを必要とする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

muソリューション#1についてどう思いますか? – tnaser

関連する問題