package kaaass.es2k.crashreport;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import javax.swing.JOptionPane;
import kaaass.es2k.Main;
import kaaass.es2k.file.FileUtil;
import kaaass.es2k.mail.MailUtil;
public class ErrorUtil {
private MailUtil.Result result = null;
Exception e = null;
String ex = null;
public ErrorUtil(MailUtil.Result result) {
this.result = result;
}
public ErrorUtil(Exception e) {
this.e = e;
}
public ErrorUtil(String e) {
this.ex = e;
}
public String getString() {
if (!result.isSuccess() && ex == null) {
String code = result.e.toString();
code = code.substring(code.indexOf(":") + 2, code.length() - 1);
if (code.startsWith("Could not connect to SMTP host")) {
return "�������������ŷ������������������ӻ���smtp�������Ƿ���ȷ��";
}
return FileUtil.getInfo(code);
}
return "δ֪����";
}
public void dealWithResult() {
if (result == null) {
String str = (new CrashReport(ex)).saveCrashReport();
JOptionPane.showMessageDialog(null, "������Ϣ:ת���δ֪����"
+ "\n������Ϣ�洢�ڳ���Ŀ¼��CrashReport�ļ����µ�" + str
+ "�С�\n������ԣ���ͨ���˵�->����->����������֪ͨ�����ߡ�", "����:δ��ȷ����",
JOptionPane.ERROR_MESSAGE);
} else if (!result.isSuccess()) {
String str = (new CrashReport(result.e, getString()))
.saveCrashReport();
JOptionPane.showMessageDialog(null, "������Ϣ:" + getString()
+ "\n������Ϣ�洢�ڳ���Ŀ¼��CrashReport�ļ����µ�" + str
+ "�С�\n������ԣ���ͨ���˵�->����->����������֪ͨ�����ߡ�", "����:δ��ȷ����",
JOptionPane.ERROR_MESSAGE);
}
}
public void dealWithException() {
String str = (new CrashReport(e)).saveCrashReport();
JOptionPane.showMessageDialog(null, "������δ֪��������Ϣ�洢��:" + str
+ "\n������ԣ���ͨ���˵�->����->����������֪ͨ�����ߡ�", "����:δ֪����",
JOptionPane.ERROR_MESSAGE);
FileUtil.deleteDirectory("mobi/");
File f = new File("mobi.zip");
if (f.exists()) {
f.delete();
}
if (Main.missionManager.running) {
Main.missionManager.mList.get(Main.missionManager.todoList.get(0))
.end();
}
System.exit(0);
}
public static String getCauseStackString(Exception e) {
StringWriter stringwriter = null;
PrintWriter printwriter = null;
Object object = e;
if (((Throwable) object).getMessage() == null) {
((Throwable) object).setStackTrace(e.getStackTrace());
}
String s = ((Throwable) object).toString();
try {
stringwriter = new StringWriter();
printwriter = new PrintWriter(stringwriter);
((Throwable) object).printStackTrace(printwriter);
s = stringwriter.toString();
} finally {
try {
stringwriter.close();
printwriter.close();
} catch (IOException e1) {
e1.printStackTrace();
(new ErrorUtil(e1)).dealWithException();
}
}
return s;
}
}