我的android应用程序尝试使用
连接到服务 response = client.execute(getRequest);
然而,服务器可能已关闭,在这种情况下,我希望使用自定义消息抛出自定义exception
,而不是android提供的消息,说应用程序已意外关闭。
有没有办法做到这一点?
答案 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)