【发布时间】:2015-06-15 01:46:04
【问题描述】:
我想通过我的代码捕获一些异常,代码层次结构如下:
try {
// some code 1
runOnUiThread(new Runnable() {
@Override
public void run() {
// some code 2
}
});
// some code 3
runOnUiThread(new Runnable() {
@Override
public void run() {
// some code 4
}
});
} catch (Exception ex) {
}
但是当这样运行时,它不会捕获some code 2 和some code 4 的任何异常,它们在runOnUiThread 内,捕获它们的唯一方法是在try-catch 内有一个try-catch 块runOnUiThread抓住他们:
try {
// some code 1
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
// some code 2
} catch (Exception e) {
}
}
});
// some code 3
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
// some code 4
} catch (Exception e) {
}
}
});
} catch (Exception ex) {
}
那么,runOnUiThread 真的需要这个吗?还是我做错了什么?如果它已经需要这个,是否有某种方法可以全局实现这一点,而不是每个runOnUiThread 代码块中的try-catch?
【问题讨论】:
-
首先,你为什么需要runOnUiThread()?你发现了什么异常?
-
@Egor 这是一个UI根据服务器定期响应而变化的应用程序,这些响应首先需要大量的解析和处理才能提取所需的信息,所以,我做了所有的解析和处理一个后台线程,并且只为 UI 更改运行 UI 线程。
-
@IvanSkoric 我知道如何捕获未捕获的异常,我正在我的应用程序中使用它,但实际上我不想让应用程序从乞讨中重新加载(这是我正在使用的操作当捕获未捕获的异常时)每次我从这个类中收到一个特定的异常。
标签: android exception try-catch android-runonuithread