Стандартные исключения
Материал из Вики проекта PascalABC.NET
Самые важные исключения библиотеки .NET:
Exception
ApplicationException
Все пользовательские исключения
SystemException
AccessViolationException (несанкционированный доступ к памяти)
ArgumentException
ArgumentNullException
ArgumentOutOfRangeException
ArithmeticException
DivideByZeroException (целочисленное деление на 0)
IndexOutOfRangeException
InvalidCastException (явное приведение к неправильному типу)
FormatException
NullReferenceException
OutOfMemoryException
StackOverflowException
IOException (пространство имен System.IO)
FileNotFoundException
EndOfStreamException
В данном примере порождается ряд стандартных исключений.
procedure DivideByZero; begin var i := 0; i := 10 mod i; // деление на 0 end; procedure IndexOutOfRange; begin var a: array of integer := new integer[10]; writeln(a[10]); end; procedure InvalidCast; begin var i : integer := 2; var o: Object := i; writeln(real(o)); end; procedure BadFormat; begin writeln(string.Format('{2}',1)); end; procedure NullReference; begin var o: Object; writeln(o.GetType); end; procedure EndOfStream; begin var f := new System.IO.StreamReader('a.txt'); end; var a: array of procedure := (DivideByZero,IndexOutOfRange,InvalidCast,BadFormat,NullReference,EndOfStream); begin foreach p: procedure in a do try p(); except on e: Exception do writeln(e.GetType.Name); end; end.
