singalen: (Default)
[personal profile] singalen
Мысля об исключениях, в дополнение к этому.
Хотя исключения и создают "неявный goto из каждого места кода" (если быть точным - то return), но в том и идея, чтобы сделать их неявными. В корректном коде в этом самом каждом месте были бы if-ы для проверки кодов возврата, return-ы, и, возможно, ещё энное количество строчек - лог и пр.
То есть - исключения являются меньшим злом, и без них код был бы не лучше.
Проблема - научить(ся) писать так, чтобы код функции корректно завершался при выходе из любого места. Для этого нужны стражи ресурсов (см. RAII pattern)... и что ещё? Неужели это решает "проблему исключений"?

P.S. Вот это у Джоэля, кажется, надо перечитать со всеми упоминаемыми статьями.
P.P.S. Ещё сравнение RAII в C++, C# и Java. Java тут, увы, сильно подкачала :)

(no subject)

4/9/05 05:57 (UTC)
Posted by [identity profile] sanyok-ua.livejournal.com
> Я уж не говорю о том, что r.ReadLine(), равно как и r.Dispose() выдаёт в авторе профана в Java.
> Увы, таких методов просто нет.

Это - код на C#. Абсолютно валидный.

(no subject)

4/9/05 06:07 (UTC)
Posted by [identity profile] alf-kadett.livejournal.com
Ну да. Только толку-то? Автор пишет о языке, который не видел - и на котором не писал. Зачем-то вводит локальную переменную, которая не нужна.

Дело же не в том, что Java хороша или плоха - мне очень нравится конструкция using. Дело в том, что обсуждение попахивает :)