我有一個程序從數據庫中讀取數據並進行一些計算。我在try和catch語句中使用它,並使用e.printstackfree()打印錯誤。但是,我們可以通過電子郵件發送錯誤,而不是將錯誤輸出給用戶。Java JDBC Email PrintStackFree
如:
try{
Statement stmt = connection.createStatement();
............
}catch(SQLException e){
System.err.print("\nDriver Error: " +"'" + e.getMessage()+"'");
e.printStackFree();
//email e.printStackFree() using javax mail API
}
現在,我的想法是,如果我用的javax郵件API通過電子郵件發送的錯誤是什麼。再一次,問題是我該怎麼做呢?
這是我到目前爲止有:
try{
Statement stmt = connection.createStatement();
............
}catch(SQLException e){
final Message message;
Properties props = System.getProperties();
props.put("mail.smtp.host", "smtp.gmail.com");
Session session = Session.getInstance(props, null);
message = new MimeMessage(session);
message.setFrom(new InternetAddress("[email protected]")); //from
message.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));
message.setSubject("Testing Error");
message.setContent("'"+e+"'", "text/html");
Transport.send(message);
System.out.println("Sent Email!!!");
}
謝謝...
在初始化變量之前沒有e.printStackTrace(trace)會給你錯誤......另外,我不認爲tracewriter實際上讀取任何字符串。你能解釋一下嗎?並且,感謝您的詳細解答。 – user2501165
沒關係把它修好!我這樣做:e.printStackTrace(新的PrintWriter(tracewriter)); String trace = tracewriter.toString(); – user2501165
感謝您的幫助@AndMim – user2501165