Exception classes
So that you don’t have to catch hundreds of individual exceptions, the exception classes related to Synergy/DE runtime errors are organized in a hierarchy that groups common exceptions and like items together. You can use the classes in the hierarchy like this:
proc
try
open(1, i, 'LOC:myfile.tst')
catch (e, @Synergex.SynergyDE.NoFileFoundException)
writes(15, "File not found")
catch (e, @Synergex.Synergyde.FileIoException)
writes(15, "Other file open error - Error "+%string(e.errno))
catch (e)
writes(15, "Other system exception")
endtry
When catching the exception, you can determine the underlying Synergy/DE error number with the Errno field of the exception variable. For example,
catch (e, Synergex.SynergyDE.BadDigitException)
writes(15, %string(e.Errno))
Synergy exception class hierarchy
The following exception class hierarchy is supported. Each indented class is derived from its parent (the lesser indented or bolded) class. See Synergy exception class error mapping for a list of errors that map to each exception class.
All exception classes are derived from System.Exception.
System.SystemException
System.ArgumentException
System.ArgumentNullException
System.ArgumentOutOfRangeException
System.ArithmeticException
System.DivideByZeroException
System.OverflowException
System.OutOfMemoryException
System.InvalidCastException
System.IndexOutOfRangeException
System.MemberAccessException
System.FieldAccessException
System.MethodAccessException
System.MissingMemberException
System.MissingFieldException
System.MissingMethodException
System.InvalidOperationException
System.NullReferenceException
System.ApplicationException
Synergex.SynergyDE.SynException
Synergex.SynergyDE.AXException
Synergex.SynergyDE.BadDigitException
Synergex.SynergyDE.InterruptException
Synergex.SynergyDE.ObjectException
Synergex.SynergyDE.RoutineNotFound
Synergex.SynergyDE.SQLException
Synergex.SynergyDE.SynArgumentException
Synergex.SynergyDE.SynDataException
Synergex.SynergyDE.SynIOException
Synergex.SynergyDE.DeviceNotReadyException
Synergex.SynergyDE.DeviceInUseException
Synergex.SynergyDE.FileIOException
Synergex.SynergyDE.DeletedRecordException
Synergex.SynergyDE.DuplicateException
Synergex.SynergyDE.EndOfFileException
Synergex.SynergyDE.FileFullException
Synergex.SynergyDE.FileInUseException
Synergex.SynergyDE.FileNameException
Synergex.SynergyDE.FileReplaceException
Synergex.SynergyDE.IllegalRecordNumberException
Synergex.SynergyDE.KeyNotSameException
Synergex.SynergyDE.NoCurrentRecordException
Synergex.SynergyDE.NoFileFoundException
Synergex.SynergyDE.NoSpaceException
Synergex.SynergyDE.ProtectionViolationException
Synergex.SynergyDE.RecordLockedException
Synergex.SynergyDE.RecordNotFoundException
Synergex.SynergyDE.RecordNotSameException
Synergex.SynergyDE.RecordTooBigException
Synergex.SynergyDE.OperationTimeoutException
Synergex.SynergyDE.SynServerException
Synergex.SynergyDE.NetworkException
Synergex.SynergyDE.NoConnectionException
Synergex.SynergyDE.ServerNotRunningException
Synergex.SynergyDE.UnknownHostException
Synergex.SynergyDE.UsernameException
Synergex.SynergyDE.WNDException
Synergy exception class error mapping
Synergy/DE maps the following errors to the exception classes listed below.
Synergex.SynergyDE.AXException
$ERR_AXERR
$ERR_AXNOLOAD
$ERR_AXNOSUB
$ERR_AXNOFIND
$ERR_AXUNSUP
Synergex.SynergyDE.BadDigitException
$ERR_DIGIT
Synergex.SynergyDE.DeletedRecordException
$ERR_DELREC
Synergex.SynergyDE.DeviceInUseException
$ERR_DEVUSE
Synergex.SynergyDE.DeviceNotReadyException
$ERR_DEVNOTRDY
Synergex.SynergyDE.DuplicateException
$ERR_NODUPS
Synergex.SynergyDE.EndOfFileException
$ERR_EOF
Synergex.SynergyDE.FileFullException
$ERR_FILFUL
$ERR_RECLIMIT
$ERR_SIZLIMIT
Synergex.SynergyDE.FileInUseException
$ERR_FINUSE
Synergex.SynergyDE.FileIOException
$ERR_DEADLOCK
$ERR_FILOPT
$ERR_FILORG
$ERR_INVALRFA
$ERR_IRCSIZ
$ERR_ISINFO
$ERR_INTISM
$ERR_INVKVAL
$ERR_INVPKEY
$ERR_NOTISM
$ERR_OPNERR
$ERR_RECLNG
$ERR_RELREC
$ERR_RMSERROR
Synergex.SynergyDE.FileNameException
$ERR_FILSPC
Synergex.SynergyDE.FileReplaceException
$ERR_REPLAC
Synergex.SynergyDE.IllegalRecordNumberException
$ERR_RECNUM
Synergex.SynergyDE.InterruptException
$ERR_INTRPT
Synergex.SynergyDE.IOHookException
$ERR_HKNOTIMP
$ERR_HKNOOPS
$ERR_HKNOTACT
$ERR_HKACTIVE
Synergex.SynergyDE.KeyNotSameException
$ERR_KEYNOT
Synergex.SynergyDE.NetworkException
$ERR_NETCRYPT
$ERR_NETPROB
Synergex.SynergyDE.NoCurrentRecordException
$ERR_NOCURR
Synergex.SynergyDE.NoConnectionException
$ERR_XFNOCONN
Synergex.SynergyDE.NoFileFoundException
$ERR_FNF
Synergex.SynergyDE.NoSpaceException
$ERR_NOSPAC
Synergex.SynergyDE.ObjectException
$ERR_CLSMTCH
$ERR_INCPTCLS
$ERR_INVCLSHND
$ERR_INVNETHND
$ERR_INVNAMHND
$ERR_NOOBJ
$ERR_NOTCLSHND
$ERR_NOTNAMHND
$ERR_NOTNETHND
$ERR_NOTOBJID
$ERR_NOTOHND
$ERR_OHNDREQ
Synergex.SynergyDE.OperationTimeoutException
$ERR_TIMOUT
Synergex.SynergyDE.ProtectionViolationException
$ERR_PROTEC
Synergex.SynergyDE.RecordNotFoundException
$ERR_RNF
Synergex.SynergyDE.RecordLockedException
$ERR_LOCKED
Synergex.SynergyDE.RecordNotSameException
$ERR_RECNOT
Synergex.SynergyDE.RecordTooBigException
$ERR_TOOBIG
Synergex.SynergyDE.RoutineNotFound
$ERR_FNOTFOUND
$ERR_NOMETHOD
$ERR_RTNNF
Synergex.SynergyDE.ServerNotRunningException
$ERR_NOSERVER
Synergex.SynergyDE.SQLException
$ERR_BADDATATYP
$ERR_CURSERR
$ERR_NOMORECURS
$ERR_NOSQL
$ERR_SQLDYN
$ERR_SQLERR
$ERR_SQLSTACK
Synergex.SynergyDE.SynArgumentException
$ERR_ALPHARG
$ERR_AORDXP
$ERR_AORIARG
$ERR_ARGDIG
$ERR_ARGMIS
$ERR_ARGORD
$ERR_ARGREC
$ERR_ARGSIZ
$ERR_BDIGXP
$ERR_HDIGXP
$ERR_IDXP
$ERR_INTARG
$ERR_INVARG
$ERR_NUMXP
$ERR_OPTINV
$ERR_WROARG
$ERR_WRTLIT
Synergex.SynergyDE.SynDataException
$ERR_SUBSCR
$ERR_ADDRSIZ
$ERR_ARGDIGPT
$ERR_DATACRYPT
$ERR_INVDSCR
$ERR_INVDIM
$ERR_INVEXFTYP
$ERR_INVHDL
$ERR_INVPRC
$ERR_IORDXP
$ERR_IRNDVAL
$ERR_HSIZERR
$ERR_ODIGXP
$ERR_RNDVAL
$ERR_SALTIV
$ERR_SETTYP
Synergex.SynergyDE.SynException
$ERR_BADADDR
$ERR_BADDBGPORT
$ERR_BADDBGTMOT
$ERR_BADFORMAT
$ERR_BADHANDLE
$ERR_BIGALPHA
$ERR_BITOPP
$ERR_DBGCLOSED
$ERR_DBGNOCONN
$ERR_DBGNOSOCK
$ERR_DBGSOCKER
$ERR_DLLCLSERR
$ERR_DLLOPNERR
$ERR_DLLOPNMOD
$ERR_GBLNF
$ERR_INVACT
$ERR_INVCLLSEQ
$ERR_INVDATE
$ERR_INVFORENT
$ERR_INVPNHAND
$ERR_INVRCBHND
$ERR_INVRPTHND
$ERR_LIBMAX
$ERR_MAXPRC
$ERR_MSGNOTFND
$ERR_NDNOPP
$ERR_NOCALL
$ERR_NODBGPORT
$ERR_NODBLOPT
$ERR_NOFORK
$ERR_NOTPNHND
$ERR_NOTRCBHND
$ERR_NOTRPTHND
$ERR_NOXCAL
$ERR_PURGE
$ERR_RCBCALL
$ERR_RCBDYN
$ERR_RCBOBJ
$ERR_RCBSTACK
$ERR_RECEXTCAL
$ERR_UNDEFERR
$ERR_UNSUP
$ERR_WNFNCERR
$ERR_WINRSRC
Synergex.SynergyDE.SynIOException
$ERR_BACKPEND
$ERR_BADKEY
$ERR_BADXDLF
$ERR_BADXDLS
$ERR_BLKSIZ
$ERR_CHNEXC
$ERR_CHNUSE
$ERR_EXQUOTA
$ERR_ILLCHN
$ERR_IOFAIL
$ERR_IOMODE
$ERR_LPQERR
$ERR_MAXIF
$ERR_MRGERR
$ERR_MSGFAIL
$ERR_NOFDL
$ERR_NOOPEN
$ERR_NOTAVL
$ERR_ONLYWR
$ERR_OUTRDO
$ERR_QUEUENOTAV
$ERR_SMERR
$ERR_SRTFAI
$ERR_SYNSOCK
$ERR_UPDNFD
$ERR_WRONGTHREAD
Synergex.SynergyDE.SynServerException
$ERR_CLNTERR
$ERR_NETCONFIG
$ERR_SRVLICERR
$ERR_SRVLICTIMO
$ERR_SRVRLICNS
$ERR_XFBADARRAY
$ERR_XFBADMTHID
$ERR_XFBADPKTID
$ERR_XFBADPKT
$ERR_XFBADTYPE
$ERR_XFHALT
$ERR_XFINCALL
$ERR_XFIOERR
$ERR_XFMETHCRYPT
$ERR_XFMETHKNF
$ERR_XFNOCALL
$ERR_XFNOCDT
$ERR_XFNOCMPDT
$ERR_XFNOELB
$ERR_XFNOINIT
$ERR_SRVNOTSUP
$ERR_XFNUMPARMS
$ERR_XFREQPARM
$ERR_XFRTNNF
$ERR_XFSERVNOSEC
$ERR_XFUNKERR
Synergex.SynergyDE.UnknownHostException
$ERR_BADHOST
Synergex.SynergyDE.UsernameException
$ERR_BADUSER
Synergex.SynergyDE.WNDException
$ERR_BADFONTID
$ERR_BADFONTNAM
$ERR_BADWNDID
$ERR_DUPFONTNAM
$ERR_INVWNDHND
$ERR_NOTWNDHND
$ERR_WNDERR
System.ArgumentNullException
$ERR_NULARG
System.IndexOutOfRangeException
$ERR_OUTRNG
System.DivideByZeroException
$ERR_DIVIDE
System.OutOfMemoryException
$ERR_NOMEM
System.OverflowException
$ERR_BIGNUM
System.InvalidCastException
$ERR_INVCAST
System.MemberAccessException
$ERR_MEMACC
System.FieldAccessException
$ERR_FLDACC
System.MethodAccessException
$ERR_METHACC
System.MissingMemberException
$ERR_MISSMEM
System.MissingFieldException
$ERR_MISSFLD
System.MissingMethodException
$ERR_MISSMETH
System.InvalidOperationException
$ERR_INVOPER
System.NullReferenceException
$ERR_NULLREF
