Запитання з тегом «try-catch-finally»

30
Чи остаточний блок завжди виконується на Java?
Враховуючи цей код, чи можу я бути абсолютно впевнений, що finallyблок завжди виконується, незалежно від того, що something()це? try { something(); return success; } catch (Exception e) { return failure; } finally { System.out.println("I don't know if this will get printed out"); }

11
Що станеться, якщо нарешті блок кидає виняток?
Якщо нарешті блок кидає виняток, що саме відбувається? Зокрема, що станеться, якщо виняток буде перекинуто на середину через остаточний блок. Чи викликаються решта тверджень (після) у цьому блоці? Я знаю, що винятки поширюватимуться вгору.

20
Чому спробувати {…} нарешті {...} добре; спробувати {…} зловити {} погано?
Я бачив, як люди кажуть, що це погана форма використання лову без аргументів, особливо якщо цей улов нічого не робить: StreamReader reader=new StreamReader("myfile.txt"); try { int i = 5 / 0; } catch // No args, so it will catch any exception {} reader.Close(); Однак це вважається хорошою формою: StreamReader …


6
Повернення з остаточно блоку на Java
Нещодавно я був здивований, коли виявив, що в Java можливо остаточно повернути заяву. Здається, що багато людей думають, що це погано робити, як описано у статті " Не повертайся нарешті ". Трохи заглибившись, я також виявив, що « повернення Java не завжди є », що показує кілька жахливих прикладів інших …

6
Чи погана практика повернутися зсередини блоку спробувати?
Тому я наткнувся на якийсь код цього ранку, який виглядав приблизно так: try { x = SomeThingDangerous(); return x; } catch (Exception ex) { throw new DangerousException(ex); } finally { CleanUpDangerousStuff(); } Тепер цей код чудово компілюється і працює як слід, але повертатися з блоку спробу просто не вважається правильним, …

6
Чи "нарешті" завжди виконується в Python?
Чи гарантується будь-який можливий блок спробу в остаточному підсумку в Python, що finallyблок завжди буде виконуватися? Наприклад, скажімо, я повертаюсь у exceptблоці: try: 1/0 except ZeroDivisionError: return finally: print("Does this code run?") А може, я знову піднімаю Exception: try: 1/0 except ZeroDivisionError: raise finally: print("What about this code?") Тестування показує, …

11
Java Try Catch Нарешті блокується без Catch
Я переглядаю новий код. Програма має спробувати і, нарешті, лише блок. Оскільки блок вилучення виключений, як працює блок "Блокування", якщо він стикається з винятком чи іншим предметом, що піддається переробці? Це просто йде безпосередньо до остаточного блоку?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.