Стандартные исключения

Материал из Вики проекта 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.

Ссылки

Персональные инструменты