Java 石英工作赢得';t执行包含异常的方法(try/catch或throws)
正如标题所提到的,我正在尝试使用Quartz来安排一个定期的工作来发送电子邮件。 一个基本的作业测试工作得很好(一些hello world打印,等等),但是一旦我调用一个包含try/catch子句或抛出一个exeption的方法,作业就不会调用它。 下面是我负责工作处理的不同代码片段 BAPJob.java:我要执行的作业Java 石英工作赢得';t执行包含异常的方法(try/catch或throws),java,quartz-scheduler,job-scheduling,Java,Quartz Scheduler,Job Scheduling,正如标题所提到的,我正在尝试使用Quartz来安排一个定期的工作来发送电子邮件。 一个基本的作业测试工作得很好(一些hello world打印,等等),但是一旦我调用一个包含try/catch子句或抛出一个exeption的方法,作业就不会调用它。 下面是我负责工作处理的不同代码片段 BAPJob.java:我要执行的作业 import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExec
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import com.echallenge.util.MailService;
public class BAPJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("EXECUTION STARTING ...");
MailService.test();
System.out.println("EXECUTION ENDING");
}
}
MailService.Java:包含我要调用的方法的类
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
public class MailService {
public static void test(){
System.out.println("TESTING I ...");
try {
InternetAddress.parse("to-email@gmail.com");
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
java:启动作业的servlet(在web.xml中有一个2值)
在Tomcat服务器上启动应用程序后,我得到以下输出:
EXECUTION STARTING ...
EXECUTION STARTING ...
EXECUTION STARTING ...
谢谢你们
这份工作不会叫它
输出指示正在调用您的作业。添加try..catch以捕获加载MailService类时出现的任何错误:
try {
MailService.test();
}
catch (Exception e) {
e.printStackTrace();
}
我找到了解决办法,我会把它留在这里以防万一 因为try-catch只捕获异常,所以我还需要捕获“错误”,所以我捕获了Throwable,它向我显示了一个以前不可见的消息错误 因此,我将我的工作改为:
public class BAPJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("EXECUTION STARTING ...");
try {
InternetAddress.parse("to-email@gmail.com");
} catch (Throwable t) {
t.printStackTrace();
}
System.out.println("EXECUTION ENDING");
}
}
嘿@shnplr,谢谢你的回答。当使用异常捕获所有错误时,作业退出邮件服务的测试中间();方法,我得到一个输出:
开始执行。。。测试我。。。执行开始。。。测试我。。。执行开始。。。测试I…
public class BAPJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("EXECUTION STARTING ...");
try {
InternetAddress.parse("to-email@gmail.com");
} catch (Throwable t) {
t.printStackTrace();
}
System.out.println("EXECUTION ENDING");
}
}