Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: INHZET

INHZET.m

Go to the documentation of this file.
  1. %ET ; cmi/flag/maw - CHEM, JC Hrubovcak, Tools 26 Oct 2000 20:38 DSM/MSM error handler ; [ 05/22/2002 2:53 PM ]
  1. ;;3.01;BHL IHS Interfaces with GIS;**1**;JUL 01, 2001
  1. ;;v4.604 ; 27 October 2000
  1. ;COPYRIGHT 2000 SAIC
  1. ; shipped as ZETDVX, installed as %ET and %ZET
  1. ; Set $ZTRAP="INT^%ZET" to trap without message
  1. ;Format:
  1. ; ^%ET(-$h) = n
  1. ; ^%ET(-$h,n) = $ZERROR
  1. ; ^%ET(-$h,n,"$I") = $IO, $ZA, $ZB, $ZIO
  1. ; ^%ET(-$h,n,"$J") = $JOB, Process name, Username, Nodename
  1. ; ^%ET(-$h,n,"$ZH") = $ZHOROLOG
  1. ; ^%ET(-$h,n,"$ZU") = UCI info
  1. ; ^%ET(-$h,n,"$ZR") = $ZREFERENCE
  1. ; ^%ET(-$h,n,#) # = 1...n (for n variables in the symbol table)
  1. ; ^%ET(-$h,n,#,"V") = local variable
  1. ; ^%ET(-$h,n,#,"D") = datum of the local variable
  1. ;
  1. I $ZE="" Q:$QUIT "" Q
  1. D INT U $P W !!," An error has occurred."_$C(7)
  1. S %="The error is: "_$ZE_"." F Q:'$L(%) W !," "_$E(%,1,79) S %=$E(%,80,$L(%)) Q:'$L(%)
  1. W !," Please contact your site manager.",!
  1. Q:$QUIT "" Q
  1. INT ; Entry point for trap without message
  1. S $ZTRAP="ERROR^"_$T(+0) ; Trap internal errors
  1. ;S $ZWATCH(9)="A>"_$ZREFERENCE ; Save naked ref.
  1. L:$ZE["-LCKERR" ; lock limit exceeded?
  1. ; exclusive access to trap, set ^%ET to -$H, if % defined, save it & descendants
  1. L +^%ET(0) S ^%ET=-$H,^%ET(^%ET)=$G(^%ET(^%ET))+1,^%ET(^%ET,^%ET(^%ET))=$ZE M:$D(%) ^%ET(^%ET,^%ET(^%ET),"~","%")=% K % S %(0)=^%ET,%(1)=^%ET(%(0)) L -^%ET(0)
  1. ; %(0)=-$H, %(1)=error #
  1. ;S ^%ET(%(0),%(1),"$ZH")=$ZHOROLOG,^("$ZR")=$P($ZWATCH(9),"A>",2,99) K $ZWATCH(9)
  1. ; save job info
  1. ;S ^%ET(%(0),%(1),"$J")=$J_$C(255)_$ZC(%GETJPI,0,"PRCNAM")_$C(255)_$ZC(%GETJPI,0,"USERNAME")_$C(255)_$ZC(%GETSYI,"NODENAME")
  1. ;S ^%ET(%(0),%(1),"$I")=$IO_$C(255)_$ZA_$C(255)_$ZB_$C(255)_$ZIO,^("$ZU")=$&ZLIB.%UCI(),%(2)=1
  1. ; Save symbol table, %(2)=symbol counter
  1. D:$D(^%ET(%(0),%(1),"~")) ; get % variable data, if there
  1. .I $D(^%ET(%(0),%(1),"~","%"))'[0 S %(9)=^("%") D DV(%(9),"%")
  1. .F S %(9)=$Q(^%ET(%(0),%(1),"~","%")) Q:%(9)'["~" D DV(@%(9),"%("_$P(%(9),",""%"",",2,999)) K @%(9)
  1. S %(8)="%" ; save local vars. & descendants
  1. F S %(8)=$ZSORT(@%(8)) Q:%(8)="" D:$D(@%(8))'[0 DV(@%(8),%(8)) S %(9)=%(8) F S %(9)=$Q(@%(9)) Q:%(9)="" D DV(@%(9),%(9))
  1. D STACK ; save stack information
  1. EXIT ; Exit, error in this routine comes here
  1. L -^%ET(0) ; in case of internal error
  1. ; CHCS customization
  1. K %,IO("DEVICE OPEN") I $G(ZISPL),$D(^%ZISPJS(ZISPL)) D SETSTAT^%ZISAPI3(ZISPL,"T")
  1. I $ZE["-ENDOFILE",$G(DTIME)=1,$G(XQM),$L($T(NOTSK^XQTASK)) D NOTSK^XQTASK ; option that wasn't to be tasked
  1. Q:$QUIT "" Q
  1. ;
  1. ; DV saves datum D for variable V and increments count in %(2)
  1. DV(D,V) S ^%ET(%(0),%(1),%(2),"D")=D,^("V")=V,%(2)=%(2)+1 Q
  1. ;
  1. STACK ; save stack info
  1. N C,S S C=1 F S=0:1:$ST(-1) S ^%ET(%(0),%(1),"%STACK",C)=" Context Level:"_$J(S,3)_" Type: "_$ST(S)_" Place: "_$ST(S,"PLACE"),^(C+1)=" M code: "_$ST(S,"MCODE"),C=C+2
  1. S $EC="" Q ; erase stack info for error
  1. ;
  1. ERROR ; Handle internal error
  1. S ^%ET(-$H,$G(^%ET(-$H))+1)="%DSM-E-ET, Error in ^"_$T(+0)_", "_$ZE
  1. U $P G EXIT
  1. ;