2015-04-27 3 views
0

Спасибо, что рассмотрели мой вопрос.Как поймать исключение, возвращенное файлом saxon jar

Я работаю с saxon java api как процессор XSLT. Получение трудностей, чтобы поймать возврат исключения в файле saxon jar.

Я могу напечатать исключение javax. Но нужно получить исключение в строке, возвращаемой саксоном.

Ниже функции я использую для преобразования XML:

import java.io.File; 
 
import javax.xml.transform.Transformer; 
 
import javax.xml.transform.TransformerFactory; 
 
import javax.xml.transform.stream.StreamResult; 
 
import javax.xml.transform.stream.StreamSource; 
 

 
public class Main { 
 

 
    /** 
 
    * Simple transformation method. 
 
    * @param sourcePath - Absolute path to source xml file. 
 
    * @param xsltPath - Absolute path to xslt file. 
 
    * @param resultDir - Directory where you want to put resulting files. 
 
    */ 
 
    public static void simpleTransform(String sourcePath, String xsltPath, 
 
             String resultDir) { 
 
     TransformerFactory tFactory = TransformerFactory.newInstance(); 
 
     try { 
 
      Transformer transformer = 
 
       tFactory.newTransformer(new StreamSource(new File(xsltPath))); 
 

 
      transformer.transform(new StreamSource(new File(sourcePath)), 
 
            new StreamResult(new File(resultDir))); 
 
     } catch (Exception e) { 
 
      e.message(); 
 
     } 
 
    } 
 

 
    public static void main(String[] args) { 
 
     //Set saxon as transformer. 
 
     System.setProperty("javax.xml.transform.TransformerFactory", 
 
          "net.sf.saxon.TransformerFactoryImpl"); 
 

 
     simpleTransform("d:/project/hob/AppModule.xml", 
 
         "d:/project/hob/create-fragment.xslt", "C:/"); 
 

 
    } 
 
}

Не могли бы вы, ребята предлагают приобрести Саксонский исключение в строку. Ниже приведен пример возвращаемого файла saxon jar.

SXJE0008: не может конвертировать хз: yearMonthDuration до требуемого типа Java

Спасибо, Дипак

+0

Вы проверили, существует ли [Exception.getCause()] (http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#getCause()) исключение Saxon? – wonderb0lt

+0

@ wonderb0lt: Я попытался getcause(), но его возвращение не возвращает исключение jar-файла. –

ответ

0

Это кажется очень простой Java вопрос.

Типичный способ захвата текста сообщения от исключения Java является:

String err = null; 
try { 
    .... 
} catch (Exception e) { 
    err = e.getMessage(); 
} 

Там нет ничего конкретного, чтобы Saxon об этом.

+0

Это не всегда так просто. Я сталкиваюсь с проблемой, когда вызов newTransformer не пропускает никаких исключений, так как они будут содержаться в файле errorListener, предоставленном w/factory.setErrorListener. Но тогда мы не можем генерировать исключение на месте, если мы не рассмотрим этот список строк для фатального (а не предупреждение). Это грубо. – Amalgovinus