gpt4 book ai didi

Java JDBC 电子邮件 PrintStackFree

转载 作者:行者123 更新时间:2023-12-04 04:49:44 27 4
gpt4 key购买 nike

我有一个程序可以从数据库中读取数据并进行一些计算。我在 try 和 catch 语句中使用它并使用 e.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("fromEmail@gmail.com")); //from

message.setRecipient(Message.RecipientType.TO, new InternetAddress("toEmail@gmail.com"));

message.setSubject("Testing Error");

message.setContent("'"+e+"'", "text/html");

Transport.send(message);
System.out.println("Sent Email!!!");

}

谢谢...

最佳答案

其实没那么难:D

try{
Statement stmt = connection.createStatement();
.......................
} catch (Exception e) {
String host = "smtp.google.com";
String sender= "fromEmail@gmail.com";
String recipiant = "toEmail@mail.com";

StringWriter tracewriter = new StringWriter();
e.printStackTrace(tracewriter);
String trace = tracewriter.toString();

Properties props= System.getProperties();
props.setPropertie("mail.smtp.host", host);

Session session = Session.getDefaultInstance(props);

try{
MineMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(sender));
message.addRecipiant(Message.RecipiantType.TO, new InternetAddress(recipiant));
message.setSubject("Testing Error");
message.setText(trace);

Transport.send(message);
System.out.println("An administrator has been notified");
} catch (Exception ex) {
ex.printStackTrace();
}
}

我们只需通过 StringBuilderprintStackTrace异常的方法,用 toString读取组合字符串并将其作为电子邮件发送。

现在,您应该能够在数据库查询出现异常时以及在该尝试中执行的任何其他操作时发送电子邮件。

关于Java JDBC 电子邮件 PrintStackFree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17616995/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com