Стандартные исключения: различия между версиями
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Mikst (обсуждение | вклад) (Новая: == Ссылки == *Особенности языка: продвинутый уровень *[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalAB...) |
Mikst (обсуждение | вклад) Нет описания правки |
||
(не показана 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.