Главная » Delphi » Совет 3 — об исключениях

0

Нужно тщательно просматривать программу на предмет возможного возникновения исключительных ситуаций. Приведу один простой пример: предположим, вы открываете некий файл, который только что сами создали. То есть он, казалось бы, гарантированно существует — ну какая тут может быть исключительная ситуация? Но если вы перед открытием не проверили, действительно ли он существует, то в сложной программе с множеством событий вы легко можете попасть в совершенно дурацкую ситуацию: представьте себе, что некий "ламер" взял и удалил этот файл в промежутке между созданием и обращением к нему. "Сам виноват" — скажете вы, и будете категорически неправы. В вашей воле прервать выполнение программы с сообщением типа "Файл … не существует", но если программа при этом виснет или выдает нечто вроде невнятного "Access denied" — "ламер" даже не поймет, где и что он сделал не так. А такого допускать нельзя. Я специально заостряю ваше внимание иа данном примере, потому что на практике таких экзотических проверок, конечно, никто не делает, полагаясь на системные обработчики исключении. И мы также этим заниматься не будем, но вы должны понимать, что и принципе это неправильно.

Одна из грубейших ошибок практически всех производителей софта, включая разработчиков Windows и самой Delphi — когда сообщение о возникновении исключительной ситуации не содержит никакой внятной информации. В лучшем случае создатели текстов таких сообщений рассчитывают на специалиста. Автор не видит никаких причин, по которым сообщение "Ошибка 103" не могло бы выглядеть, как "Ошибка доступа к файлу <пмя_фаш1а>" (то же относится и к известной "Ошибке 404" в серверном ПО для Интернета, про которую, правда, все уже все выучили). И тем более недопустимы сообщения такого рода, если они возникают перед глазами конечного пользователя. Это одна из причин, по которым все возможные исключительные ситуации нужно обрабатывать в программе, не полагаясь на системные обработчики.

Источник: Ревнч Ю. В.  Нестандартные приемы программирования на Delphi. — СПб.: БХВ-Петербург, 2005. — 560 е.: ил.

По теме:

  • Комментарии