Я хочу распечатать стек (после ошибки в блоке исключений, try catch
), но я хочу распечатать все во внешнем файле (.txt), файле, который я могу взять где-нибудь в папках Android.
заранее спасибо
Я хочу распечатать стек (после ошибки в блоке исключений, try catch
), но я хочу распечатать все во внешнем файле (.txt), файле, который я могу взять где-нибудь в папках Android.
заранее спасибо
Откройте/объявите PrintWriter
для записи в ваш файл и измените блок catch на:
catch(Exception e) {
e.printStackTrace(your_print_writer);
}
Ну, это может быть проблемой, но это вполне выполнимо:
try {
badMethod();
} catch(SomeException e) {
try (FileWriter writer = new FileWriter("file.txt")) {
e.printStackTrace(writer);
} catch(IOException ioexception) {
// do something here
}
}
Есть много способов сделать это, но, возможно, самый простой — перенаправить System.err в нужный файл, а затем просто вызвать Exception.printStackTrace();
Чтобы перенаправить стандартный вывод ошибок:
PrintStream ps = new PrintStream("./errors.txt");
System.setErr(ps);
а потом...
catch(Exception e) {
e.printStackTrace();
}
Вы можете сделать это следующим образом:
try{
// action
} catch (IOException e) {
PrintWriter writer = new PrintWriter("stacktrace.txt");
e.printStackTrace(writer);
writer.close();
}