Обработка исключительных ситуаций производится в операторе Try.
Язык Fore основан на использовании COM-технологии. Если при использовании системных свойств/методов языка Fore возникает исключительная ситуация, то для обработки таких исключений используется класс System.Runtime.InteropServices.COMException.
Если исключительная ситуация возникает при использовании свойств/методов, реализованных в пользовательских Fore-сборках, то обработать такие исключения можно с использование класса System.Exception.
Пример обработки исключительной ситуации, которая может возникнуть при выполнении системного Fore-метода IMetabaseDefinition.Open:
Sub Test();
Var
MB: IMetabase;
Sp: ISecurityPackage = New StandardSecurityPackage();
Begin
Try
Mb := Self.Metabase;
Mb.Definition.Open(Sp.CreateCredentials(AuthenticationMode.amPassword),
ApplicationMode.amWin, LocaleCodeID.lcidRussian);
Except On Ex: System.Runtime.InteropServices.COMException Do
System.Diagnostics.Debug.WriteLine(Ex.Message);
Finally
End Try;
End Sub;
Пример обработки исключительной ситуации, которая может возникнуть при выполнении пользовательского метода, реализованного в Fore-сборке с идентификатором «UserAssm»:
Sub Test();
Var
Svc: IForeServices;
Run: IForeRuntime;
Assembly: IForeAssembly;
FClass: IForeClass;
FSub: IForeSub;
FObj: IForeObject;
v: object;
Begin
Svc := Self.Metabase As IForeServices;
Run := Svc.GetRuntime();
Run.LoadAssembly("UserAssm");
Assembly := Run.BindToAssembly("UserAssm");
FClass := Assembly.BindToClass("UserClass");
FObj := FClass.CreateObject();
FSub := FClass.BindToMethod("Test");
FSub.Self := FObj;
Try
FSub.Invoke();
Except On Ex: System.Exception Do
System.Diagnostics.Debug.WriteLine(Ex.Message);
Finally
End Try;
End Sub;
См.также: