异常捕获和保存

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常捕获和保存相关的知识,希望对你有一定的参考价值。


public void getLogToLocal(Throwable e) {
StringBuffer sb = new StringBuffer();
Writer write = new StringWriter();
PrintWriter print = new PrintWriter(write);
e.printStackTrace(print);
print.close();
String string = write.toString();

long currentTimeMillis = System.currentTimeMillis();
String format = sim.format(currentTimeMillis);
sb.append(format + "\n\r");
sb.append(string);

String fileName = "crash-" + format + "-" + currentTimeMillis + ".txt";
String file_dir = getFilePath();

File dir = new File(file_dir);
if (!dir.exists()) {
dir.mkdirs();
}
File file = new File(file_dir + fileName);
try {
if (!file.exists()) {
file.createNewFile();
}

FileOutputStream fos = new FileOutputStream(file);
fos.write(sb.toString().getBytes());

fos.close();

} catch (Exception e1) {
e1.printStackTrace();
}

}

private String getFilePath() {
String file_dir = "";

boolean isSDCardExist = Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState());

boolean isRootDirExist = Environment.getExternalStorageDirectory()
.exists();
if (isSDCardExist && isRootDirExist) {
file_dir = Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/openhapplog/";
} else {

file_dir = getApplicationContext().getFilesDir().getAbsolutePath()
+ "/openhappLog/";
}
return file_dir;
}

以上是关于异常捕获和保存的主要内容,如果未能解决你的问题,请参考以下文章

异常捕获和保存

Java异常处理机制

如何在不将图像保存在本地的情况下将捕获的图像(Surface View)传递给另一个片段?

在iOS中捕获崩溃和异常[重复]

从片段捕获图像时从不调用onActivityResult [重复]

将 google 对象保存到 Core Data - 以 NSException 错误类型的未捕获异常终止