我正在研究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
感谢您提供的任何帮助
答案 0 :(得分:0)
执行所需操作的最佳方法是使用回调,以便每个方法都可以正确处理它,但是,如果没有回调,则让它执行某些默认行为。
这样您就可以在有错误的方法中使用属性。
这个问题更多地涉及Android中的回调:
How to Define Callbacks in Android?
但是,基本上你创建了一个以类似的方式实现的接口:
CrashReporter.ReportCrash(ex, new ExceptionCallback() {
public void myExceptionCallback(Exception e) {
}
});
此代码不会编译,只是为了显示实现它的可能方法。
如果您的类有一个需要的回调,那么您可以先创建回调侦听器,然后将其传递给ReportCrash
方法。