【发布时间】:2016-02-02 03:53:19
【问题描述】:
我有这个代码:
public void remote(final Backup backup) {
local(backup);
AsyncTask.execute(new Runnable() {
@Override
public void run() {
BackupSendInfo sendInfo = new BackupSendInfo()
.setFile(getLastBackup()) // <---
.setFileName(getBackupName(backup))
.setBackup(backup)
.setDeviceId(device)
.setApp(config.getAppName());
fileSender.send(sendInfo);
}
});
}
这是getLastBackup方法签名:
private File getLastBackup() throws BackupException;
如您所见,它抛出了BackupException,但我无法在remote 方法签名中添加throws BackuPException 声明,因为它在另一个线程中。
我应该如何处理这种情况? 我希望 remote 方法抛出 BackupException
【问题讨论】:
-
在 asynctask 方法中捕获异常并抛出它。
-
我不能。如果我在 AsyncTask 的 catch 中重新抛出它,我会得到同样的错误:必须捕获异常。
-
谢谢。我喜欢
ExceptionAsyncTask解决方案。
标签: android exception exception-handling android-asynctask