Стандартные исключения
Материал из Вики проекта 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.