Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-如何捕获特定异常,更改其消息,但将其他类型的异常保留在原始消息中_Java_Android_Exception Handling - Fatal编程技术网

Java Android-如何捕获特定异常,更改其消息,但将其他类型的异常保留在原始消息中

Java Android-如何捕获特定异常,更改其消息,但将其他类型的异常保留在原始消息中,java,android,exception-handling,Java,Android,Exception Handling,我试图在通过Internet发送数据时捕获这些类型的所有异常: java.net.SocketException java.io.EOFException 每当出现这些异常之一时,我希望显示一条类似“无法发送数据。请稍后重试”的消息,而不是它们的原始消息。但如果异常来自其他类型,我希望保留原始消息 我在返回对象类型的函数中尝试过类似的方法 try { //send data, return data } catch( IOExcept

我试图在通过Internet发送数据时捕获这些类型的所有异常:

  • java.net.SocketException
  • java.io.EOFException
每当出现这些异常之一时,我希望显示一条类似“无法发送数据。请稍后重试”的消息,而不是它们的原始消息。但如果异常来自其他类型,我希望保留原始消息

我在返回对象类型的函数中尝试过类似的方法

    try {
         //send data, return data 
    }       
    catch( IOException ioe){
        return ioe;
    }   
    catch (Exception e) {
        return e;
    }
当我最后要举杯时,我会做一些类似的事情:

        if (requestObject instanceof String) {
            //everything went alright

        } 
        else if( requestObject instanceof IOException){
            Toast.makeText(this, "Unable to send data. Please retry later", Toast.LENGTH_SHORT);            
        }
        else if (requestObject instanceof Exception) {  
            Toast.makeText(this, ((Exception) requestObject).getMessage(), Toast.LENGTH_SHORT);         
        }
我可能尝试了错误类型的异常,因为toast会继续显示原始消息


如果您能帮助我,我真的很感激,我也尝试过其他解决方案,但没有成功。

首先,IOException会同时处理java.net.SocketException和java.io.eofeException吗??因为不知怎的,我得到了一个信息,那些异常通常显示:S