Znalezione w kodzie

21 kwietnia 2008, 15:59:56, Patryk Dobrowolski
Kategorie: Java
Znalezione w kodzie II - klonowanie kolekcji? »
try {
	// Some code...
}
catch (Exception e) {
	if (e instanceof java.sql.SQLException) {
        	throw (java.sql.SQLException) e;
        } 
	else {
        	e.printStackTrace();
                throw new SQLException(e.getMessage());
        }
}
 

Komentarze

Khorne, 21 kwietnia 2008 16:43:11

- Baco, czyje te owce? - pyta turysta
- Białe, czy czarne?
- Białe.
- No moje - odpowiada baca
- A czarne?
- Tyz moje.

Claygirl, 21 kwietnia 2008 18:27:09

O nie. I Khorne teraz będzie śmiał się ze mną, że programuję w Javie :(

Khorne, 21 kwietnia 2008 18:28:03

Nie mówi się "ze mną", tylko "ze mnie" ;-)

Claygirl, 21 kwietnia 2008 18:29:04

Oh, pardon. Podświadomie oszczędziłam sobie śmiania się ze mnie ;)

I nie, nie wszyscy programiści Javy to barany!!!

Khorne, 21 kwietnia 2008 18:30:55

Oczywiście, że nie wszyscy. Odsetek baranów jest jednakowy, technologia to tylko punkt zaczepienia do głupich żartów :-)

Żebyś widziała jaki kod C++ nam zapodali haxorzy z oddziału w Izraelu...

JedenPies, 21 kwietnia 2008 18:55:22

yyyyyy. Ja tam się baranem nie czuję :P

Khorne, 21 kwietnia 2008 18:57:31

No wiadomo, napisałeś przecież "znalezione" a nie "patrzcie co dziś napisałem" Jesteśmy na Joggerze gawd dammit, barany są wszędzie indziej :D

gość, 21 kwietnia 2008 22:06:29

Uprzedzam, jestem początkującym Javo'wcem(nie żyję z programowania), ale mimo wszystko staram się pojąć co autor kodu miał na myśli ;) Moje rozumowanie wygląda tak: jeśli wyjątek jest obiektem klasy java.sql.SQLException to rzuć wyjątek klasy java.sql.SQLException. W innym przypadku podaj info skąd on się wziął i rzuć wyjątek typu: SQLException z tą informacją. Pytanie: czy SQLException i java.sql.SQLException to ta sama klasa? Może autorowi chodziło o tymczasowe rozwiązanie polegające na wyłapaniu wyjątków typu: java.sql.SQLException, a reszta niech tylko się zaafiszuje. I jeszcze na koniec jestem ciekawy jak autor bloga rozwiązał problem tego kodu :)

JedenPies, 22 kwietnia 2008 10:37:28

Autor tego bloga, czyli ja, nie rozwiązał problemu tego kodu. Bo autor tego bloga musi czasami zajmować się aplikacją, która jest tak napisana, że strach cokolwiek ruszyć.

java.sql.SQLException to ta sama klasa, gdyż przy klauzuli throws w metodzie był tylko jeden wyjątek SQLException.

Tak na prawdę nie chodzi o to, że kod jest całkiem bez sensu, bo on pewnie jakiś sens ma, ale... No właśnie. Nie po to są wyjątki, żeby je sobie podmieniać w trakcie wyłapywania, poza tym można by było to samo napisać zupełnie inaczej:

try {
// some code
}
catch(SQLException e) {
throw e;
}
catch(Exception e) {
throw new SQLException(e.getMessage());
}

gość, 22 kwietnia 2008 11:07:21

Rozumiem, czyli podałeś równoważny, pod względem wyniku, sposób. :) Poza tym Twój kod łatwiej modyfikować, jest prostszy, krótszy. To wygląda tak jakby ten kto pisał "oryginalny kod" wiedział co chce(i zrobił to), tylko miał blade pojęcie o wyjątkach, a być może o kodowaniu w Javie. ;)

Zostaw komentarz

Treść:
Podpis:
Strona WWW:
Kod:

Weryfikacja antyspamowa