如何在方法onClick(View v)中抛出例外

时间:2018-11-05 16:56:47

标签: java android ioexception

首先,我已经查看了一些类似的问题,但是答案并没有帮助我:(

我试图编写一个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,但是都没用:(

我该怎么办?

谢谢

1 个答案:

答案 0 :(得分:1)

您的第二个示例做得正确。

对于崩溃,仅仅因为方法没有明确声明它抛出某个Exception并不意味着就不会。它可能会引发NullPointerException,RemoteException,IllegalArgumentException等。此外,仅因为没有“应用程序已停止”消息并不意味着该应用程序没有崩溃。该对话框并不总是显示。

如果您只想忽略该方法的所有错误(可能是一个坏主意,因为当前的崩溃可能是您需要修复的错误),只需捕获异常:

try {
    //whatever
} catch (Exception e) {}

但是,您应该真正查看Android Studio中的Logcat查看器(底部工具栏)。仅按您的应用进行过滤,然后将级别设置为“错误”,以找出导致应用崩溃的原因。