Praktyczne zastosowanie return do zwracania błędów
Ostatnio zmodyfikowano 2016-10-13 14:20
blahax2g Temat założony przez niniejszego użytkownika |
Praktyczne zastosowanie return do zwracania błędów » 2016-10-11 20:10:18 Witam, Czytałem ostatnio kurs o słowie kluczowym "return" i w większości programów, na jego końcu wpisujemy return 0; co miałoby zwrócić do IDE komunikat returned 0 . Czy mogę sobie np używać w dowolnym miejscu programu innych "returnów" żeby zwracać sobie do IDE błędy? Czyli np. return 212; i wtedy jeśli będę wiedział za co odpowiada błąd 212 to będę mógł go zlokalizować i naprawić? Sprawdziłem jeszcze i z tego co widzę, to return zwraca wartości od 0 do 255, mogą być jeszcze jakieś inne możliwości? Pozdrawiam, z góry dzięki. |
|
pekfos |
» 2016-10-11 21:06:56 Czy mogę sobie np używać w dowolnym miejscu programu innych "returnów" żeby zwracać sobie do IDE błędy? |
W main(). W pozostałych funkcjach możesz wywołać exit(n) dla zakończenia programu z kodem n, jednak w C++ tej funkcji nie należy używać bez zachowania ostrożności. |
|
RazzorFlame |
» 2016-10-13 14:20:55 Sprawdziłem jeszcze i z tego co widzę, to return zwraca wartości od 0 do 255, mogą być jeszcze jakieś inne możliwości? |
Return powoduje wyjście z funkcji. Zwykle wyjście z funkcji main powoduje zakończenie programu i dopiero po tym Twoje IDE pokazuje co zostało zwrócone przez aplikacje. Return w kontekście zwracania błędów jest przydatny głównie w funkcji main, w innych przypadkach bardziej bym się skusił na rzucanie wyjątków class CholeroNieDzielPrzezZero { public: std::string get() const { return "Pamietaj cholero - nie dziel przez zero!"; } };
float dziel( float a, float b ) { if( b == 0 ) throw CholeroNieDzielPrzezZero(); return a / b; }
int main() { float liczba = 30; float dzielnik = 0; try { float wynik = dziel( liczba, dzielnik ); std::cout << "Wynik z dzielenia: " << wynik << std::endl; } catch( CholeroNieDzielPrzezZero & e ) { std::cout << "ERROR, ERROR: " << e.get() << std::endl; return 1; } return 0; }
Jak widzisz w pierwszym przypadku return posłużyło jako zwrócenie tekstu, który wyświetlamy na ekranie W drugim przypadku (w funkcji dziel) return zwraca wartość dzielenia, W mainie standardowo - jesli wszystko poszlo pomyslnie to zwracamy zero jesli nie to 1. try { } catch() {} nie jest trudne do zrozumienienia jednak z jakiegoś powodu zwykle w kursach albo tego nie ma albo jest gdzieś na końcu. return to wyjście z funkcji oraz zwrócenie przez nią konkretnej wartości. W przypadku main zwykle return zamyka program i zwraca wynik pomyślnego wykonania (0) lub w innym przypadku dowolnej wartości z zakresu około -2 miliardy do 2 miliardów. |
|
« 1 » |