Hilfe!!!

4 views
Skip to first unread message

Vexator

unread,
Sep 15, 2008, 2:32:34 AM9/15/08
to Trójmiasto JUG
Witajcie

nie jestem zbyt dobrym programistą JAVA i potrzebuję waszej pomocy.

mam funkcję, a w niej blok try-catch.
w bloku try tworzę zmienną i chciałbym, żeby funkcja ją zwróciła, lecz
niestety, jeśli poza blokiem try napiszę return zmienna, to dostaję
błąd, że nie ma takiej zmiennej, a gdy umieszczę return w bloku try,
to dostaję błąd, że funkcja nic nie zwraca.

jak mam wyciągnąć wartość zmiennej poza blok try?

Jakub Neumann

unread,
Sep 15, 2008, 2:39:41 AM9/15/08
to jug-tro...@googlegroups.com
> w bloku try tworzę zmienną i chciałbym, żeby funkcja ją zwróciła, lecz
> niestety, jeśli poza blokiem try napiszę return zmienna, to dostaję
> błąd, że nie ma takiej zmiennej, a gdy umieszczę return w bloku try,
> to dostaję błąd, że funkcja nic nie zwraca.
>
> jak mam wyciągnąć wartość zmiennej poza blok try?
Na przykładzie zmiennej typu String:

public String metoda(){

String zmienna = null;

try {
zmienna = innaMetoda();
}
catch (Exception e){
// obsługa wyjątku
}

return zmienna;
}

Pozdro
Kuba

Vexator

unread,
Sep 15, 2008, 3:15:49 AM9/15/08
to Trójmiasto JUG
public String zmienneget()
{
String dane = "ok&zmienna1="
try
{
dane = dane + "wartosc1&zmienna2=wartosc2";
}
catch (Exception e){}
dane = dane + "&zmienna3=wartosc3";
return dane;
}

out.println(zmienneget());

wyświetla mi ok&zmienna1=&zmienna3=wartosc3
czyli nie dodaje treści z wnętrza bloku try.
w logach nie mam żadnych błędów.

Mikolaj Kmita

unread,
Sep 15, 2008, 3:45:43 AM9/15/08
to jug-tro...@googlegroups.com
Witam,

A mi po copy-paste Twojego kodu wyswietla:
"ok&zmienna1=wartosc1&zmienna2=wartosc2&zmienna3=wartosc3"

jedyne co zmieniłem, to dodałem srednik w linii z deklaracją zmiennej "dane" - tak więc proponuję sprawdzić raz jeszcze :)

Pzdr.,
Mikolaj

ps. Proponowałbym dodać w bloku catch, choć odpis do logów/konsolę - bo początkowo mały programik rosnie, czlowiek zapomina o takich "kwiatkach"... a później jest żmudne debug-owanie, czemu co tam się magicznie zachowuje... 

---
public class Output {
public static void main(String[] args) {
System.out.println(new Output().zmienneget());
}

public String zmienneget()
{
  String dane = "ok&zmienna1=";
  try
  {
      dane = dane + "wartosc1&zmienna2=wartosc2";
  }
  catch (Exception e){}
  dane = dane + "&zmienna3=wartosc3";
  return dane;
}
}
---


2008/9/15 Vexator <santa...@gmail.com>

Grzegorz Duda

unread,
Sep 15, 2008, 4:01:45 AM9/15/08
to jug-tro...@googlegroups.com
Najprosciej tak:

String result = null;
try {
... twoje magiczne zmiany ...
} catch (Exception e) {
}
return result;

Regards,
Grzegorz Duda (http://grzegorzduda.blogspot.com)
Polish JUG (http://java.pl)


2008/9/15 Vexator <santa...@gmail.com>

Grzegorz Duda

unread,
Sep 15, 2008, 4:08:38 AM9/15/08
to jug-tro...@googlegroups.com
sorry,
Gmail jakos podzielil mi watek i nie widzialem Waszych odpowiedzi. Ale przynajmniej mamy podobne nawyki programistyczne :)


Regards,
Grzegorz Duda (http://grzegorzduda.blogspot.com)
Polish JUG (http://java.pl)


2008/9/15 Grzegorz Duda <grzego...@gmail.com>

Krzysztof Grajek

unread,
Sep 15, 2008, 5:01:26 AM9/15/08
to jug-tro...@googlegroups.com
Mozesz zdefiniowac zmienna localna dla metody, nadac jej wartosc w bloku try-catch i wtedy zwrocic np: public int getMyInt(){ int x = 0; try{ //blah blah; x = 4; } catch(Exception ex){} return x;} //koniec methody,
sorry za format kodu ale moze sie polapiesz

Pozdro
Krzysiek

2008/9/15 Vexator <santa...@gmail.com>

Vexator

unread,
Sep 15, 2008, 5:05:49 AM9/15/08
to Trójmiasto JUG
ok. dzięki... okazało się, że w try miałem inny błąd, nie związany z
tą zmienną, więc cały blok try nie był wykonywany i dlatego zmienna
się nie dopisywała :/

jeszcze raz dzięki za pomoc.

On 15 Wrz, 09:45, "Mikolaj Kmita" <mikolaj.km...@gmail.com> wrote:
> Witam,
> A mi po copy-paste Twojego kodu wyswietla:
> "ok&zmienna1=wartosc1&zmienna2=wartosc2&zmienna3=wartosc3"
>
> jedyne co zmieniłem, to dodałem srednik w linii z deklaracją zmiennej "dane"
> - tak więc proponuję sprawdzić raz jeszcze :)
>
> Pzdr.,
> Mikolaj
>
> ps. Proponowałbym dodać w bloku catch, choć odpis do logów/konsolę - bo
> początkowo mały programik rosnie, czlowiek zapomina o takich "kwiatkach"...
> a później jest żmudne debug-owanie, czemu co tam się magicznie zachowuje...
>
> ---
> public class Output {
> public static void main(String[] args) {
> System.out.println(new Output().zmienneget());
>
> }
>
> public String zmienneget()
> {
>    String dane = "ok&zmienna1=";
>    try
>    {
>        dane = dane + "wartosc1&zmienna2=wartosc2";
>    }
>    catch (Exception e){}
>    dane = dane + "&zmienna3=wartosc3";
>    return dane;}
> }
>
> ---
>
> 2008/9/15 Vexator <santanac...@gmail.com>
Reply all
Reply to author
Forward
0 new messages