Вопросы с тегом «try-catch-finally»

266
Что произойдет, если блок finally генерирует исключение?

Если блок finally создает исключение, что именно происходит? В частности, что происходит, если исключение выдается на полпути через блок finally. Вызваны ли остальные операторы (после) в этом блоке? Я знаю, что исключения будут распространяться вверх....

201
Почему попытка {…} наконец {…} хороша; попробуй {…} поймать {} плохо?

Я видел, как люди говорили, что использовать catch без аргументов - плохая форма, особенно если эта catch ничего не делает: StreamReader reader=new StreamReader("myfile.txt"); try { int i = 5 / 0; } catch // No args, so it will catch any exception {} reader.Close(); Тем не менее, это считается...

193
@try - блок вылова в Objective-C

Почему @try не блокирует работу? Приложение рухнуло, но предполагалось, что оно попадет в блок @try. NSString* test = [NSString stringWithString:@"ss"]; @try { [test characterAtIndex:6]; } @catch (NSException * e) { NSLog(@"Exception: %@", e); } @finally { NSLog(@"finally"); }...

177
Возвращаясь из блока finally в Java

Недавно я был удивлен, обнаружив, что в блоке finally в Java возможно иметь оператор return. Похоже, что многие люди думают, что это плохо, как описано в « Не возвращайся в конце предложения ». Немного углубившись в подробности, я также обнаружил, что «возвращение Java не всегда » показывает...

128
Это плохая практика - возвращаться из блока try catch finally?

Итак, сегодня утром я наткнулся на код, который выглядел так: try { x = SomeThingDangerous(); return x; } catch (Exception ex) { throw new DangerousException(ex); } finally { CleanUpDangerousStuff(); } Теперь этот код отлично компилируется и работает так, как должен, но кажется неправильным...

126
Всегда ли "finally" выполняется в Python?

Гарантируется ли, что для любого возможного блока try-finally в Python finallyвсегда будет выполняться блок? Например, скажем, я возвращаюсь, находясь в exceptблоке: try: 1/0 except ZeroDivisionError: return finally: print("Does this code run?") Или, может быть, я повторно подниму Exception: try:...

125
Java Try Catch finally блокирует без Catch

Я просматриваю новый код. В программе есть только блок попыток и окончание. Поскольку блок catch исключен, как работает блок try, если он встречает исключение или что-то бросаемое? Он просто переходит непосредственно в блок...