2013-12-08 3 views
0

Я пытаюсь создать обработчик ошибок, который примет сообщение об ошибке и распечатает его в файле регистрации. Есть ли способ, которым я могу получить массаж, если я использую try/catch, как это?Получить сообщение java throwable в строке

try{ 
    //code; 
}catch(Exception e){ 
    Main.error=e.?; 
} 

Я пробовал e.getMessage(), но он возвращает только null. Заранее спасибо

+2

исключением не обязательно должны иметь сообщение. –

+1

Существуют различные библиотеки для ведения журналов, такие как java.util.logging или log4j – lwi

+0

[сомнительно, следует ли вам сообщать текст сообщения об исключениях для исключений, которые не указывают на ошибки) (http://stackoverflow.com/questions/7320080/следует, что вы отчетно-на-сообщение-текст-в-исключений). – Raedwald

ответ

0

Вы пытались использовать e.toString()?

+0

Спасибо за идею, но она возвращает тип ошибки, а не трассировку. – Sylvyrfysh

+0

Если вы хотите распечатать трассировку стека, вы можете использовать 'e.getStackTrace()'. –

5

С docs из Throwable класса (где GetMessage() происходит от):

Возвращает: деталь сообщение строка этого Throwable экземпляра (, который может быть пустым).

Таким образом, сообщение null является вполне законным ответом от getMessage() и создается всякий раз, когда экземпляр класса Exception создается без аргументов.

Если сообщением, вы имеете в виду трассировки стека, то Throwable определяет getStackTrace метод, который позволяет перебирать различные элементы, которые будут напечатаны в виде printStackTrace, из которого вы можете получить их вывод строки только с помощью toString()

0

Вы могли бы сделать что-то вроде этого:

try{ 
//code; 
}catch(Exception e){ 
     PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8"); 
     writer.println(e.toString()); 
     writer.close(); 
} 
Смежные вопросы