Search code examples
javaclassreturn

how to return a value from this try catch function in java?


so i have this class

public static String ip (String url){

try {


    String webPagea = url;
    URL urla = new URL(webPagea);
    URLConnection urlConnectiona = urla.openConnection();
    InputStream isa = urlConnectiona.getInputStream();
    InputStreamReader isra = new InputStreamReader(isa);

    int numCharsReada;
    char[] charArraya = new char[1024];
    StringBuffer sba = new StringBuffer();
    while ((numCharsReada = isra.read(charArraya)) > 0) {
        sba.append(charArraya, 0, numCharsReada);
    }
    String resulta = sba.toString();
    return resulta;


} catch (Exception e)

{



}
    **(compile error)
       }

and i want the above to return the resulta string when called from another class like below:

private class t1 implements Runnable{
    public void run() {

   String getip= ip("http://google.com");
     }

but i get compile error that i didn't add a return statement above where the 2 stars are.

Also in general when i define a string within a try catch like above i cant access it outside the try/catch what am i doing wrong ?

example:

  public void haha(String data)
{
    try {

   string test="test6";

  } catch (Exception e)

  }

 string vv=test;   <--test cannot be found


}

I want to emphasize i want to get the output of the page not the source code

if the website outputs text i want just the text not the html code

cheers


Solution

  • The scope of the string resulta is within the bounds of the try block. Modify you rcode to have the string resulta declared outside the try block, like this:

    public static String ip (String url){
    String resulta = "";
    try {
        String webPagea = url;
        URL urla = new URL(webPagea);
        URLConnection urlConnectiona = urla.openConnection();
        InputStream isa = urlConnectiona.getInputStream();
        InputStreamReader isra = new InputStreamReader(isa);
    
        int numCharsReada;
        char[] charArraya = new char[1024];
        StringBuffer sba = new StringBuffer();
        while ((numCharsReada = isra.read(charArraya)) > 0) {
            sba.append(charArraya, 0, numCharsReada);
        }
        resulta = sba.toString();
    } catch (Exception e) {
    
    }
        return resulta;
    }