Android:异常处理

时间:2012-03-21 09:44:16

标签: android exception-handling httpwebrequest

我的android应用程序尝试使用

连接到服务
 response = client.execute(getRequest);

然而,服务器可能已关闭,在这种情况下,我希望使用自定义消息抛出自定义exception,而不是android提供的消息,说应用程序已意外关闭。

有没有办法做到这一点?

6 个答案:

答案 0 :(得分:2)

try
{
   response = client.execute(getRequest);
}
catch(Exception ex)
{
  // Or add your custom exception here
  Log.e("Your Custom Message:",ex.toString());
}

答案 1 :(得分:0)

您可以尝试在try-catch块中包装调用,并捕获通用的Exception类型,然后处理它(查看服务器是否已关闭),然后抛出自定义异常。

try
{
   response = client.execute(getRequest);
}
catch(Exception e)
{
   //processing
   throw new MyCustomException();
}

答案 2 :(得分:0)

编写自己的类MyException extends Exception{...并为其提供一些自定义实现。这可以在该类的构造函数中或在某种方法中。

扔掉它 -

try{
   response = client.execute(getRequest);
}catch(Exception e){
   //handle your exception
   throw new MyException();
}

答案 3 :(得分:0)

您可以在例外区块中打印e.printstacktrace();吗?

我认为您将获得有关您正在获得的异常类型的详细信息。

答案 4 :(得分:0)

如果您还希望向用户显示此自定义消息,您可以这样做:

try {
   response = client.execute(getRequest);
} catch(Exception e) {
   Toast.makeText(getApplicationContext(), "My custom message", Toast.LENGTH_LONG).show();
   throw new Exception("My custom message", e);
}

答案 5 :(得分:0)

我使用ACRA解决了这个问题

http://code.google.com/p/acra/wiki/BasicSetup

http://code.google.com/p/acra/wiki/AdvancedUsage

您可以使用

覆盖默认崩溃报告并显示自定义Toast
@ReportsCrashes(formKey="dGVacG0ydVHnaNHjRjVTUTEtb3FPWGc6MQ",
            mode = ReportingInteractionMode.TOAST,
            forceCloseDialogAfterToast = false, // optional, default false
            resToastText = R.string.crash_toast_text)