我需要在java内部循环中处理自定义异常,所以我抛出新的自定义异常,但它打破了循环.如何在不破坏循环的情况下设法抛出循环.这是我的代码
for (int i = 0; i < j; i++) {
File currFile = arrayOfFile1[i];
if (currFile.isFile()) {
if (currFile.exists()) {
try {
String fileName = currFile.getName();
if (fileName.startsWith("~$")) {
continue;
} else {
if ((fileName.endsWith(".xlsx")) || (fileName.endsWith(".xls"))) {
if (fileName.endsWith("_arch.xlsx") || fileName.endsWith("_arch.xls")) {
continue;
}
try {
IDSOutputGenerator.generateOutput(currFile.getAbsolutePath(), "", outputType,
false);
} catch (CheckErrorHandle e) {
throw new CheckErrorHandle();
}
}
else if (fileName.endsWith(".xml")) {
try {
IDSOutputGenerator.generateOutput(currFile.getAbsolutePath(), "", outputType,
false);
} catch (CheckErrorHandle e) {
throw new CheckErrorHandle(); …Run Code Online (Sandbox Code Playgroud) 我需要在 backgroundworker 中运行一个耗时的过程,在这个过程中我也需要打开一个窗口。一切正常,但是当我在该过程中调用 UI 时,它不允许我在该新窗口中工作,它只显示等待,当我取消后台工作进程时,它也不会取消,尽管我启用了 workersupportcancel。这是我的代码
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
runCheck();
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
{
MessageBox.Show(e.Error.Message);
}
}
private void newBtncheck_Click(object sender, RibbonControlEventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
private void newBtncheck_Click(object sender, RibbonControlEventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
private void btnStop_Click(object sender, RibbonControlEventArgs e)
{
this.backgroundWorker1.CancelAsync();
}
Run Code Online (Sandbox Code Playgroud)