Java 如何在方法onClick(视图v)中抛出一个exeption

Java 如何在方法onClick(视图v)中抛出一个exeption,java,android,ioexception,Java,Android,Ioexception,首先,我已经复习了一些类似的问题,但答案对我没有帮助:( 我试图编写一个Android应用程序,这是我的问题 public void onClick(View v) { String url = Buscar_Random(); //do something with the variable url 我想调用方法Buscar\u Random,此方法抛出一个IOException,因此我需要在方法onClick中调用此异常。因此我尝试了以下方法: publi

首先,我已经复习了一些类似的问题,但答案对我没有帮助:(

我试图编写一个Android应用程序,这是我的问题

public void onClick(View v)  {
        String url = Buscar_Random();
        //do something with the variable url
我想调用方法
Buscar\u Random
,此方法抛出一个
IOException
,因此我需要在方法
onClick
中调用此异常。因此我尝试了以下方法:

public void onClick(View v) throws  IOException {
    public void onClick(View v)  {
    try {
        String url = Buscar_Random.main();
        //do something with the variable url
    } catch (IOException e){
        e.printStackTrace();
    }
但是
onClick
是一个覆盖方法,所以我收到这样一条消息:
overrided方法不会抛出'java.io.IOException'

我也试过:

public void onClick(View v) throws  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已停止工作”

我还尝试使用
运行时异常
,但两者都不起作用:(

我能做什么


谢谢

你的第二个例子就是做对了

至于崩溃,仅仅因为一个方法没有明确声明它抛出了一个特定的异常并不意味着它不会。它可能会抛出一个NullPointerException、RemoteException、IllegalArgumentException等。而且,仅仅因为没有“App has stopped”消息并不意味着该应用没有崩溃。该对话框并不总是显示

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

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

但是,您应该真正了解Logcat查看器(底部工具栏)在Android Studio中。仅按你的应用进行筛选,并将级别设置为“错误”,然后找出你的应用程序崩溃的原因。

好的,这是一个进步。我尝试了这个,该应用程序不做不应该做的事,但不会关闭,谢谢!正如我所说,你确实需要查看引发另一个异常的原因。请显示你的日志。可能还有另一个异常是被抛出。你好,艾伦,请显示您的错误日志。我建议您使用异常e而不是IOException。