home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 May / PCW596.iso / wtest / clico / sunsoft / pcnfs51 / telnet.zoo / errmsg.ecf < prev    next >
Text File  |  1994-08-27  |  2KB  |  96 lines

  1. set nover
  2. !-------------------------------------------------------------------------------
  3. !        Command File Process for Error Messages and Codes
  4. !-------------------------------------------------------------------------------
  5. errcode=0
  6. errlev=0
  7. display
  8. display " ERROR"
  9. display " LEVEL $STATUS     L  $STATUSID            Error Message"
  10. display
  11. loop:
  12. on warning then goto exit
  13.  
  14. !    * Shift left 3 *
  15. errcode=(((errlev * 2) * 2) * 2)
  16.  
  17. !    * Set to not print NOMSG error but still EXIT on error *
  18.  
  19. set nomess
  20. errmsg=f$message(errcode)
  21. set mess
  22.  
  23. !    * make code fatal
  24. errcode=errcode+4
  25.  
  26. !    * Special check for fatal error without Ident *
  27. if errcode .eq. 12 then goto abort
  28.  
  29. st=f$loc("-",errmsg)+3
  30. sc=f$loc(",",errmsg)+2
  31. id=f$ext(st,f$loc(",",errmsg)-st,errmsg)
  32.  
  33. !    * Check for fatal system errors *
  34.  
  35. if id .eqs. "DISKFULL" then goto syserr
  36. if id .eqs. "DIVBYZERO" then goto syserr
  37. if id .eqs. "DOSERR" then goto syserr
  38. if id .eqs. "FORMOPEN" then goto syserr
  39. if id .eqs. "FORMREAD" then goto syserr
  40. if id .eqs. "INSFMEM" then goto syserr
  41. if id .eqs. "MEMFULL" then goto syserr
  42. if id .eqs. "PROGERR" then goto syserr
  43. !    * Special check for nolabel error *
  44. if id .eqs. "NOLABEL" then goto syserr
  45.  
  46. !    * Call to display error messages and codes *
  47.  
  48. set noon
  49. @errex "''id'"
  50. errcode_out=$status .and. %h7fff
  51. set on
  52.  
  53. !    * Process to construct error message *
  54.  
  55. errmsg=f$message(id)
  56. errmsg=f$ext(0,f$loc("<cr><lf>",errmsg),errmsg)
  57. sevid=f$ext(st-2,f$loc(",",errmsg)-st+2,errmsg)
  58. sevid=f$ext(0,1,sevid) + "  " + f$ext(2,255,sevid)
  59.  
  60. next:
  61. msg2=f$ext(sc,f$len(errmsg)-sc,errmsg)
  62. space1="<HT>"
  63. msg1="   ''errlev'    ''errcode_out'    ''sevid'"
  64. if f$length(sevid) .le. 7 then space1="<HT><HT>"
  65. display msg1+space1+msg2
  66. set abort
  67. errlev=errlev + 1
  68. goto loop
  69.  
  70. !    * Process to handle abort error *
  71.  
  72. abort:
  73. sc=0
  74. sevid="F  ABORT"
  75. goto syserr1
  76.  
  77. !    * Process to handle fatal system errors *
  78.  
  79. syserr:
  80. sevid=f$ext(st-2,f$loc(",",errmsg)-st+2,errmsg)
  81. sevid="F  " + f$ext(2,255,sevid)
  82. !    * If NOLABEL, severity = E *
  83. if id .nes. "NOLABEL" then goto syserr1
  84. errcode=errcode-2
  85. sevid="E" + f$ext(1,255,sevid)
  86.  
  87. syserr1:
  88. set noabort
  89. errmsg=f$message(errcode)
  90. errcode_out=errcode
  91. goto next
  92.  
  93. exit:
  94. set mess
  95. exit
  96.