2015-08-29 5 views
1

Скажем, в моем приложении Java у меня есть throws Исключение в моем основном классе, и у меня есть попытка и поймать мой код. В моей части catch у меня есть код с отображением Exception в моем приложении. Я хочу знать, есть ли в любом случае я могу сохранить это сообщение об исключении, которое отображается в консоли, и отправить это сообщение об исключении на мой адрес электронной почты? Я получил работу по подключению электронной почты, и все, что мне нужно, это найти способ сохранить это сообщение об ошибке. Помощь будет оценена.Как сохранить сообщение об ошибке ошибки

попытаться поймать часть

public static void main (String[] args) throws Exception{ 


    try { 

     //method and code go here 



    } 
    catch (Exception e){ 
     //Exception 
     throw e; 
    } 
} 
+0

Исключение обработки FYI-U r использованием try catch block, поэтому из основного метода не нужно выбрасывать исключение. – Bikku

+0

О, я забыл об этом, спасибо, что указал: – RedRocket

ответ

7

Вы можете вызвать getMessage() на объект исключения, чтобы получить сообщение:

catch (Exception e) { 
    String message = e.getMessage(); 
    // Do whatever with the message, for example e-mail it somewhere 
} 

Если вы хотите полную трассировку стека исключения, это немного больше, чтобы получить это в строку:

catch (Exception e) { 
    StringWriter sw = new StringWriter(); 
    PrintWriter pw = new PrintWriter(sw); 
    e.printStackTrace(pw); 
    pw.flush(); 
    String stackTrace = sw.toString(); 
    // do whatever you want to do with stackTrace 
} 
+0

Большое спасибо, это то, что я ищу! – RedRocket

+2

Первым вариантом должно быть действительно 'e.toString()', чтобы получить также имя исключения. Одно сообщение часто бессмысленно, например. это выражение '(new int [0]) [1]' throws 'ArrayIndexOutOfBoundsException' с сообщением' 1'. – Andreas

+0

Нельзя использовать: Строка stackTrace = e.getStackTrace(). ToString(); (Я НЕ УВЕРЕН) – Saud

2

Вы можете использовать, чтобы получить ROR сообщение:

e.getMessage(); 

Если вы хотите сохранить сообщение, просто сделать:

String message = e.getMessage(); 
1

Вы можете использовать toString() метод класса исключения, как это:

String message = e.toString(); 

Вы будете получить информацию о имени класса, локальном сообщении и сообщении об ошибке. Вот более подробная информация, чем метод getMessage.

Чтобы сохранить сообщение об исключении для дальнейшего использования, вы также можете создать поле класса.

+0

Вы также можете сделать «+ e» в качестве ярлыка – shieldgenerator7

+0

@ shieldgenerator7, есть плохой способ «String» cast – Andrew

+0

Почему? Он обходит любые возможные NullPointerExceptions – shieldgenerator7

Смежные вопросы