尝试捕获runOnUiThread

穆罕默德·里法特(Muhammed Refaat)

我想通过我的代码捕获一些异常,代码层次如下:

    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 4runOnUiThreadtry-catchrunOnUiThread

    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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章