Co się stanie, jeśli zarówno catch, jak i w końcu bloki rzucą wyjątek?
Co się stanie, jeśli zarówno catch, jak i ostatecznie blocks rzucą wyjątek?
5 answers
Gdy finally
blok rzuca wyjątek, skutecznie ukryje wyjątek wyrzucony z catch
bloku i będzie tym, który zostanie ostatecznie wyrzucony. Dlatego ważne jest, aby albo rejestrować wyjątki po złapaniu, albo upewnić się, że blok finally sam nie wyrzuci wyjątku, w przeciwnym razie możesz uzyskać wyjątki, które są tłumione i nigdy nie widziane.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-26 23:32:50
Gdy catch rzuca wyjątek, w końcu zostanie uruchomiony blok, a następnie zakończy się z wyjątkiem. Jeśli blok finally wyrzuci wyjątek, blok zakończy się z wyjątkiem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-26 23:26:29
Ostatni wyrzucony wyjątek jest wyrzucany.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-26 23:25:45
Its już odpowiedział dobrze przez adrianbanks, ale poniższy post powinien być ciekawy: ciekawe wyniki WYJĄTKÓW: wyrzucenie WYJĄTKÓW z bloku Finally
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-26 23:34:29
Cześć Nwaman myślę, że odpowiadasz źle Przetestowałem go w aplikacji windows, znalazłem, jeśli u napisać program taki jak poniżej
try
{
string s = "hu";
int i = int.Parse(s);
}
catch (Exception ex)
{
string s = "hu";
int i = int.Parse(s);
throw new Exception();
}
finally
{
MessageBox.Show("hi");
}
I to nie spowoduje ostatecznie wykluczenia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-22 09:57:57