class predicates ?
????handleFileReadError?:?(?exception::traceID?ErrorCode?) failure.
clauses ?
????handleFileReadError(ErrorCode):-?
????????Descriptor?=?exception::tryGetDescriptor(ErrorCode,?fileSystem_api::cannotcreate),?
????????!,?% file cannot be loaded
????????exception::descriptor(_ErrorCode,?% _ErrorCode is ErrorCode ,
%just not necessary to insert extra check here
????????????_ClassInfo,?% class information of the class, which raised the exception .
????????????_Exception,?% actually it is fileSystem_api::cannotcreate,
% but the parameter should not be compared by ' = ' .
% See exceptionState::equals
????????????_Kind,?% exception can be raised or continued
????????????ExtraInfo,?
????????????_CursorPosition,?
% currently we know the position,
% but sending dumps to developers requires positions
????????????_GMTTime,?% the time of exception creation .
????????????ExceptionDescription)?=?Descriptor,?
????????FileName?=?core::mapLookUp(ExtraInfo,?
????????????fileSystem_api::fileName_parameter,?string("")),?
????????Reason?=?core::mapLookUp(ExtraInfo,?
????????????common_exception::errorDescription_parameter,?string("")),?
????????stdIO::write("Cannot?load?file?due?to:?",ExceptionDescription,?
"\nFileName:?",?FileName,?
"\nReason:?",?Reason?),?
????????exception::clear(ErrorCode),?
% it is necessary to clean exceptions when they are handled
????????fail.?
????handleFileReadError(ErrorCode):-?
????????isDebugMode?=?true,?
????????!,?
????????exceptionDump::dumpToStdOutput(ErrorCode),?
% dump to console for developer needs
????????exception::clearAll(),?
% clear all exceptions, as they are shown in the dump already .
????????fail.?
????handleFileReadError(ErrorCode):-?
????????exception::clear(ErrorCode),?
% program cannot handle the exception and it does not report about it .
????????fail.