Стандартные исключения: различия между версиями

Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
(Новая: == Ссылки == *Особенности языка: продвинутый уровень *[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalAB...)
 
Нет описания правки
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
Самые важные исключения библиотеки .NET:
Exception
    ApplicationException
        Все пользовательские исключения
    SystemException
        AccessViolationException (несанкционированный доступ к памяти)
        ArgumentException
          ArgumentNullException
          ArgumentOutOfRangeException
        ArithmeticException
          DivideByZeroException (целочисленное деление на 0)
        IndexOutOfRangeException
        InvalidCastException (явное приведение к неправильному типу)
        FormatException
        NullReferenceException
        OutOfMemoryException
        StackOverflowException
        IOException (пространство имен System.IO)
          FileNotFoundException
          EndOfStreamException
В данном примере порождается ряд стандартных исключений.
<source lang="Delphi">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.</source>
== Ссылки ==
== Ссылки ==
*[[Особенности языка: продвинутый уровень]]
*[[Особенности языка: продвинутый уровень]]
*[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalABC.NET: Особенности языка]
*[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalABC.NET: Особенности языка]

Текущая версия от 10:18, 16 января 2010

Самые важные исключения библиотеки .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.

Ссылки