Pytania otagowane jako exception

Wyjątkiem są nietypowe warunki, które wymagają odchylenia od normalnego przepływu programu. Zwykle wyjątek nie powinien skutkować całkowitą awarią, ale zamiast tego powinien być obsługiwany przez procedurę obsługi wyjątku. Obsługa wyjątków jest wbudowaną konstrukcją w wielu językach programowania. Zwykle wyjątki są obsługiwane przez odwijanie stosu, a tym samym przywracanie do określonego stanu poza zakresem wyjątku, a następnie wywoływanie bloku lub procedury obsługi.


2
Rozróżnij wyjątek od awarii w bloku CATCH [RAKU]
Wiemy, że awarią może zaradzić blok CATCH. W poniższym przykładzie tworzymy błąd „AdHoc” (w innym sub-sub) i obsługujemy wyjątek w bloku CATCH (w moim sub-sub) sub my-sub { try { CATCH { when X::AdHoc { say 'AdHoc Exception handled here'; .resume } default {say 'Other Exception'; .resume} } my $b …



2
Konstruuj standardowe wyjątki za pomocą argumentu zerowego wskaźnika i niemożliwych warunków dodatkowych
Rozważ następujący program: #include<stdexcept> #include<iostream> int main() { try { throw std::range_error(nullptr); } catch(const std::range_error&) { std::cout << "Caught!\n"; } } GCC i Clang z wywołaniem libstdc ++ std::terminatei przerywają program z komunikatem terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct null not valid Clang z libc ++ …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.