将异常变量发送到函数并返回异常详细信息

时间:2013-05-19 23:57:22

标签: android exception-handling

我正在研究android库,我需要将异常对象传递给函数。该函数应该处理所有Exception类型,并能够返回异常中的所有可用数据,例如错误消息,堆栈跟踪和内部异常。

下面是我如何在catch语句中将异常变量传递给我的函数。

try
{
    txtText = (EditText)findViewById(R.id.txtTestEdit);
    String test = txtText.getText().toString();
}
catch (NullPointerException ex)
{
    CrashReporter.ReportCrash(ex);
}

以下是我需要提取异常类型的函数。

public static void ReportCrash(Object exceptionObject)
{
    String exceptionType = exceptionObject.getClass().getName();
    Log.d("Exception Type", exceptionType);     
}

在此示例中,异常类型为java.lang.NullPointerException。有没有办法可以将名为exceptionObject的对象返回到原始异常,以提取堆栈跟踪内部异常和错误消息。

请注意,此功能应该处理所有异常类型,而不仅仅是NullPointerException

感谢您提供的任何帮助

1 个答案:

答案 0 :(得分:0)

执行所需操作的最佳方法是使用回调,以便每个方法都可以正确处理它,但是,如果没有回调,则让它执行某些默认行为。

这样您就可以在有错误的方法中使用属性。

这个问题更多地涉及Android中的回调:

How to Define Callbacks in Android?

但是,基本上你创建了一个以类似的方式实现的接口:

CrashReporter.ReportCrash(ex, new ExceptionCallback() {
    public void myExceptionCallback(Exception e) {
    }
  });

此代码不会编译,只是为了显示实现它的可能方法。

如果您的类有一个需要的回调,那么您可以先创建回调侦听器,然后将其传递给ReportCrash方法。