2012-03-21 68 views
0

我的Android aplication尝试连接到使用安卓:异常处理

response = client.execute(getRequest); 

服务。然而,服务器可能会关闭,并在这样的时刻,我想抛出一个自定义的exception与自定义消息,而不是android提供的消息,说应用程序意外关闭。

有没有办法做到这一点?

+0

事情是我的应用程序将不可避免地崩溃时,它所指的服务被关闭。我想要做的不是显示消息 - 应用程序意外失败并崩溃....显示消息说服务器已关闭,请稍后重试,并允许应用程序崩溃而不显示默认错误消息 – Sana 2012-03-21 13:32:34

回答

0

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

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

感谢您的及时答复 我实际上使用try-catch块已经 尝试{ \t \t //执行请求 \t \t响应= client.execute(调用getRequest); (“ClientProtocolException”,e.toString()); (“IO异常”,例如,IO异常)。的toString()); \t \t throw new RuntimeException(“Error”); \t \t} 但是,它仍然给我一个说明,说应用程序意外关闭了 – Sana 2012-03-21 09:49:24

+0

您是否处理抛出最后一个catch的RuntimeException?只要有未捕获的异常,您的应用程序就会崩溃。 – 2012-03-21 09:53:02

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

写自己的类MyException extends Exception{...并给予一定的定制实现它。这可以在该类的构造函数中或某种方法中。

,并把它喜欢 -

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

您可以打印异常块的e.printstacktrace();

我想你会得到你得到的异常类型的细节。

+0

事情是我的应用程序将不可避免地崩溃时,它所指的服务已关闭。我想要做的不是显示消息 - 应用程序意外失败并崩溃....显示消息说服务器已关闭,请稍后重试,并允许应用程序崩溃而不显示默认错误消息 – Sana 2012-04-09 04:54:43

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); 
}