首先,我已经查看了一些类似的问题,但是答案并没有帮助我:(
我试图编写一个Android应用程序,这是我的问题
public void onClick(View v) {
String url = Buscar_Random();
//do something with the variable url
我想调用方法Buscar_Random
,此方法引发一个IOException
,因此我需要在方法onClick
中调用此异常。所以我尝试了这个:
public void onClick(View v) throws IOException {
但是onClick
是覆盖方法,因此我收到此消息:overridden method does not throw 'java.io.IOException'
我也尝试过:
public void onClick(View v) {
try {
String url = Buscar_Random.main();
//do something with the variable url
} catch (IOException e){
e.printStackTrace();
}
这是最奇怪的部分,该应用程序已编译,但是当我在Android的应用程序中调用该方法时,该应用程序会自行关闭(甚至不会显示“不幸的是blahblah已停止工作”消息)
我也尝试使用RuntimeException
,但是都没用:(
我该怎么办?
谢谢
答案 0 :(得分:1)
您的第二个示例做得正确。
对于崩溃,仅仅因为方法没有明确声明它抛出某个Exception并不意味着就不会。它可能会引发NullPointerException,RemoteException,IllegalArgumentException等。此外,仅因为没有“应用程序已停止”消息并不意味着该应用程序没有崩溃。该对话框并不总是显示。
如果您只想忽略该方法的所有错误(可能是一个坏主意,因为当前的崩溃可能是您需要修复的错误),只需捕获异常:
try {
//whatever
} catch (Exception e) {}
但是,您应该真正查看Android Studio中的Logcat查看器(底部工具栏)。仅按您的应用进行过滤,然后将级别设置为“错误”,以找出导致应用崩溃的原因。