Исключением является ситуация, когда метод или функция не могут делать то, что должны.
Если метод OpenFile не может открыть файл [по любой причине] и возвращает дескриптор файла вызывающей стороне, это исключение для метода OpenFile, поскольку он не может открыть файл, который является его основным назначением.Таким образом, нет ничего лучше исключения, то, что может быть для вас исключением, может быть хроническим для кого-то другого в каком-то другом контексте .Мы можем назвать это Execution Failures
.Основная цель исключений - сообщить об ошибках.
Пример: OutOfMemoryException
может быть условием исключения для обычных небольших приложений ввода данных, но не для тех приложений, которые осуществляют управление памятью самостоятельно, таких как SqlServer или IIS.Рассмотрим случай чтения потока.Если метод ReadByte
достигает конца потока и нет больше байта для чтения, в тот момент, когда вы вызываете ReadByte в потоке, он должен выдать исключение, потому что больше нет байтов для чтения.Но когда вы вызываете метод ReadChar
в конце потока, он будет читать EOF, что абсолютно нормально для метода ReadChar, поскольку EOF является допустимым символом для чтения.Для метода ReadByte условие называется method-failure