Описание тега try-finally
NoneTry-finally - это предложение, используемое для определения блока кода, который может генерировать исключение вместе с инструкциями для выполнения независимо от того, возникло ли исключение или нет.
1
ответ
Как обрабатывать исключения броска внутри блока finally в Java
В Java, не рекомендуется бросать исключения внутри finally раздел в try-chatch блокировать из-за скрытия распространения любого необработанного throwable который был брошен в try или же catch блок. Эта практика blocker нарушение уровня в соответстви…
20 дек '16 в 14:53
0
ответов
Я знаю, наконец, что исключение выдается без какой-либо переменной
Есть ли способ узнать в finally это исключение выдается без использования какой-либо дополнительной переменной, как показано ниже: boolean hasFailed = true; try { // code //... hasFailed = false; } finally { if (hasFailed) { // handle failure } } Ан…
14 дек '18 в 14:08
8
ответов
Должен ли я поставить блок try-finally после каждого Object.Create?
У меня есть общий вопрос о наилучшей практике в OO Delphi. В настоящее время я помещаю блоки try-finally в любое место, где я создаю объект, чтобы освободить этот объект после использования (чтобы избежать утечек памяти). Например: aObject := TObjec…
27 май '10 в 16:35
3
ответа
Может ли наконец блокировать узнать, было ли исключение
В программе Python у меня есть код со следующей структурой: try: value = my_function(*args) finally: with some_context_manager: do_something() if 'value' in locals(): do_something_else(value) Но 'value' in locals() конструкция кажется немного хрупко…
09 апр '17 в 15:44
6
ответов
Блок Try-finally предотвращает StackruError
Взгляните на следующие два метода: public static void foo() { try { foo(); } finally { foo(); } } public static void bar() { bar(); } Бег bar() явно приводит к StackruError, но работает foo() нет (программа, кажется, работает бесконечно). Это почему…
15 сен '12 в 15:49
2
ответа
Почему компилятор Java наконец-то копирует блоки?
При компиляции следующего кода с простым try/finally Блок, компилятор Java производит выходные данные ниже (просмотр в ASM Bytecode Viewer): Код: try { System.out.println("Attempting to divide by zero..."); System.out.println(1 / 0); } finally { Sys…
15 мар '15 в 14:16
6
ответов
Использование наконец вместо улова
Я видел этот шаблон несколько раз сейчас: bool success = false; try { DoSomething(); success = true; } finally { if (!success) Rollback(); } И мне было интересно: почему это лучше, чем использовать catch для отката? try { DoSomething(); } catch { Ro…
23 май '12 в 14:15
3
ответа
ДОПОЛНИТЕЛЬНАЯ РАЗЪЯСНЕНИЕ: Как правильно написать операторы Try..Finally..Except?
RE: Как правильно написать Try..Finally..Except операторов? Я все еще смущен оригинальным вопросом ОП. В частности, последняя строка процедуры (за пределами try..finally..end), которая гласит "Screen.Cursor:=crDefault". Насколько я понимаю, любые ис…
21 ноя '13 в 19:55
6
ответов
Лучшая практика для выполнения вложенного оператора TRY / FINALLY
Привет. Каков наилучший способ делать вложенные операторы try & finally в delphi? var cds1 : TClientDataSet; cds2 : TClientDataSet; cds3 : TClientDataSet; cds4 : TClientDataSet; begin cds1 := TClientDataSet.Create(application ); try cds2 := TClientD…
29 дек '08 в 17:16
5
ответов
О ваще
Я знаю finallyЦель состоит в том, чтобы гарантировать выполнение некоторых инструкций или кода очистки. Но какова разница в использовании finally или поставить код после блока catch.Я имею в виду, приведите пример случая, когда вам нужно использоват…
22 май '14 в 20:39
4
ответа
Как смоделировать "попробуй наконец" или "попробуй", кроме языков, в которых их нет
Есть ли способ симулировать try-finally или же try-except на языке, который не имеет их? Если есть какое-то случайное, непредсказуемое, исключение, я должен быть уверен, что какая-то очистка выполняется. я мог бы попытаться быть уверенным в том, что…
02 янв '12 в 02:23
2
ответа
Python: использование continue в инструкции try-finally в цикле
Будет ли следующий код: while True: try: print("waiting for 10 seconds...") continue print("never show this") finally: time.sleep(10) Всегда печатайте сообщение "жду 10 секунд...", спите в течение 10 секунд и делаете это снова? Другими словами, дела…
11 май '12 в 03:11
1
ответ
Поддержание потока кода с возможностью отката в Python без экстремальной идентификации
Я столкнулся с ситуацией, когда я работаю над фрагментом кода, где я изменяю команду на удаленном объекте (то, что я не могу дублировать для работы с клоном), а затем запрашиваю удаленный объект для какой-либо операции в новое состояние и отменить в…
19 авг '11 в 09:18
2
ответа
Использование try-finally для выполнения операторов после возврата
Рассмотрим следующий код: Foo result = array[index]; index = (index + 1) % array.length; return result; Для выполнения некоторых заключительных действий требуется дополнительная переменная. Имеет ли смысл написать это как: try { return array[index];…
02 июл '18 в 15:31
2
ответа
Delphi Thread Timeout дает утечки каждый раз
Итак, я реализовал многопоточность с помощью THandle, вот так: procedure Calc_Prin; type TTeste = record ptrClass: TSpAu; ptrTEMPO: ^integer; end; var TEMPO: integer; RESULTADO: THandle; thrID: DWord; teste: TTeste; function THREAD_C(PTR: pointer): …
26 сен '14 в 19:14
3
ответа
Порядок выполнения try, catch и finally блокирует
Предположим, у меня есть код C#, подобный этому: try { Method1(); } catch(...) { Method2(); } finally { Method3(); } Method4(); return; Мой вопрос заключается в том, что при условии, что исключение не выдается, будет ли Method3() выполняться перед M…
05 мар '17 в 02:15
5
ответов
Как определить, возникло ли исключение, когда вы находитесь в блоке finally?
Можно ли сказать, было ли исключение, когда вы находитесь в finally статья? Что-то вроде: try: funky code finally: if ???: print('the funky code raised') Я хочу сделать что-то вроде этого более сухим: try: funky code except HandleThis: # handle it r…
04 мар '18 в 19:42
1
ответ
Java вернуть ссылку или объект? Вернуться, прежде чем, наконец?
Давайте рассмотрим тестовый класс import java.util.Date; public class TestClass { public String finallyHappensBeforeReturn(){ try{ return "Important Message"; }finally{ finallyHappensBeforeReturn(); } } public String unaffectedReference(){ String me…
05 авг '15 в 04:19
1
ответ
Delphi - Какой "правильный" порядок для блоков исключений и окончательно?
Предположим, у меня есть следующая процедура: function ReadFile(f : TFilename) : Boolean; var fs : TFileStream; begin Result := False; try fs := TFileStream.Create(f, ...); try // read file ... Result := True; finally FreeAndNil(fs); end; except // …
04 мар '15 в 19:21
1
ответ
Исключение Python в предложении finally использует предыдущие исключения
В моем реальном случае Segmentation fault возникает в finally пункт, с которым я ничего не могу поделать, потому что он происходит от внешней библиотеки, используемой через ctypes. На самом деле, я не беспокоюсь об этом segfault, потому что сценарий…
27 фев '13 в 00:41