1 1 TECH.IException,TECH.RegisteredObject right TECH.IException list 1 TO DO : Stack zou een %Stream moeten worden. %String 1 %TimeStamp 1 %List 1 TECH.Exceptions.enu.Schaal ##class(TECH.Exceptions.enu.Schaal).Major() 1 %GlobalCharacterStream 1 1 1 %Status -error. Eventueel kunnen we iets try-catchen, zoals de gecatchte error in een global wegschrijven. Set ..Tijdstip = ##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentTimeStamp() Quit $$$OK ]]> Exception:TECH.IException Exceptions:TECH.ExceptionList Exceptions:TECH.ExceptionList Prefix:%String="" %String 32000 { Set ToString = ToString _ $$$CRLF _ "Rest van de Exceptie is afgekapt!!!" } Quit ToString ]]> Prefix:%String="" %GlobalCharacterStream 0 { do Stream.WriteLine(Prefix_"Extra info:") do ..ExtraInfo.Rewind() while '..ExtraInfo.AtEnd { do Stream.WriteLine(Prefix_$$$TAB_..ExtraInfo.ReadLine()) } } Do Stream.WriteLine(Prefix_"ErrorCode: "_$$$TAB_..GeefExceptionCode()) Do Stream.WriteLine(Prefix_"ErrorKlasse: "_$$$TAB_..%ClassName()) Do:$length(..GeefTekstOpLijn()) Stream.WriteLine(Prefix_..GeefTekstOpLijn()) Do Stream.WriteLine(Prefix_"Tijdstip: "_$$$TAB_..GeefTijdstip()) #dim ErrorListIterator As TECH.ListIterator = ##class(TECH.ListIterator).%New(..InnerExceptions) While ErrorListIterator.HasNext() { #dim InnerException As TECH.Exceptions.Exception = ErrorListIterator.Next() Do Stream.WriteLine(Prefix_"InnerExceptie "_ ErrorListIterator.Key() _":") Do Stream.Write(InnerException.ToString(Prefix_"***")) } Quit Stream ]]> Overschrijven in klasse TECH.Exceptions.RuntimeException 1 %String TECH.ExceptionList %String Schaal:TECH.Exceptions.enu.Schaal TECH.Exceptions.enu.Schaal %Boolean %TimeStamp %String %Boolean %XML.Adaptor 1 TECH.enu.ExceptionCode Wordt gebruikt om in de ecode weg te schrijven, de omschrijving blijft dus best beperkt. 1 %String ExtraInfo:%CacheString="" %String ExceptieType:%String,Omschrijving:%String=""