Класс System.Exception является базовым для всех классов исключительных ситуаций. Данный класс имеет следующие, общие для всех исключений свойства:
Свойство Message, доступное только для чтения, содержит описание причины возникновения исключения.
Свойство InnerException, доступное только для чтения, содержит ссылку на исключительную ситуацию, которая вызвала возникновение данного исключения. Если значение данного свойства равно Null, то данное исключение не было вызвано каким-либо другим.
Значения этих свойств могут быть заданы при создании объекта исключительной ситуации путем передачи соответствующих значений конструктору.
Imports System;
Imports System.Diagnostics;
Public Class UserClass
Public Function Test(a, b: integer): integer;
Begin
If a > b Then
Raise New System.Exception("Параметр A должен быть меньше параметра B",
New System.ArgumentException("Недопустимые значения параметров", "A"));
Else
Return a + b;
End If;
End Function Test;
End Class UserClass;
Public Class TestUserClass
Public Shared Sub Main();
Var
Obj: UserClass = New UserClass();
InnEx: System.Exception;
Res: integer;
Begin
Try
Res := Obj.Test(2, 1);
Except On Ex: System.Exception Do
Begin
InnEx := Ex.InnerException;
Debug.WriteLine(Ex.Message);
Debug.WriteLine(InnEx.Message);
Debug.WriteLine((InnEx As System.ArgumentException).ParamName);
End;
End Try;
End Sub;
End Class;
В пользовательской функции Test осуществляется проверка значений передаваемых параметров. Если значение параметра «А» больше параметра «B», то функция генерирует исключительную ситуацию. При генерации исключительной ситуации также генерируется связанная ошибка. Для обработки исключительных ситуаций в процедуре Main используется оператор Try. При выполнении метода «Test» будет сгенерирована исключительная ситуация. Информация об исходной и связанной ошибках будет выведена в консоль среды разработки.
См. также: