将异常转移到UI的最佳方法?

时间:2012-01-26 20:32:16

标签: java android

如果需要将异常转移到UI,处理异常的更好方法是什么。 我需要使用什么:通过几种方法向用户显示适当的消息或从方法到方法返回错误代码或者其他什么东西,抛出Checked / Unchecked(从哪个更好)?

更新:

使用Android的处理程序来处理所有已检查/未检查(可能只有它们)的异常是不是一个好主意,我不知道它们出现在哪里?

例如

...

catch(NUllPointerException){
UIExceptionHandler.sendEmptyMessage(...);
}

...

onHandleMessage(...){
//handle exception here - for example show toast 
}

3 个答案:

答案 0 :(得分:5)

就像Dan W所说,您可以创建自己的异常并在UI层上捕获它。扩展RunetimeException允许您抛出异常,而不必在方法头中指定它们。

另一个需要考虑的重要事项是UI层上的EDT。由于无法将所有Event Dispatcher Thread异常包装在UI Layer中的单个位置,因此您可以创建UncaughtExceptionHandler并管理应用程序中触发的所有UncaughtExceptions。

从那里,您可以轻松地记录并通知用户发生的错误,并根据抛出和未捕获的异常类型显示不同的消息。这样,您就可以确定没有任何错误被忽视。

这个讨论讨论了实现Handler的基础。 How can i catch Event Dispatch Thread (EDT) exceptions?

答案 1 :(得分:3)

我个人会创建一个自定义异常并将其一直抛到UI层。这样,你就不会抛出所有异常。您可以在项目的较低层中捕获所有其他异常,但是当您处于需要重新启动到UI的那些区域时,您将捕获原始异常并重新抛出自定义异常。

答案 2 :(得分:-1)

这就是我目前的项目。 如果存在异常,我会捕获它们并存储有意义的文本,例如 - UserInput太短或数字不允许等等,我将它们存储在名为ErrorVO的数组中。然后,我在UI上显示错误消息。

相关问题