我想通过我的代码捕获一些异常,代码层次如下:
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
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
实际上是需要这个吗?还是我做错了什么?如果已经需要此功能,那么是否有某种方法可以全局实现此功能,而不是try-catch
在每个runOnUiThread
代码块内部都可以实现?
那么,runOnUiThread实际上需要这个吗?
是的,当您使用时,runOnUiThread
您可能会在其他处理线程上运行。这意味着,抛出于其中的每个异常都Runnable
可能与您尝试放置的异常在不同的线程上引发。
是否有某种方法可以全局实现此目标,而不是在每个runOnUiThread代码块内进行try-catch?
具有一个自定义类Runnable
,该类扩展了“引发”一个自定义/任何异常,但这听起来并不很舒服。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句