📄 error_handler.c
字号:
/*===========================================================================*//* DMC interim out | error_handler | Utility *//*===========================================================================*//* Name: error_handler Purpose: take care of program response to warning/error conditions Usage: int error_handler (); int level; char *message; int result; result = error_handler (level, message); Input: level = an integer indicating message level; current values are MESSAGE = 0 INFO = 0 WARNING = 1 ERROR = 2 FATAL = 3 These should be defined in an include file for use by other procedures. message = a string containing the message to be written Output: result = same as level for now Externals: none Messages: none Warnings: none Errors: none Fatals: none Called by: anything Calls to: opmsg - proc to send messages to operator Algorithm: according to level, print a message and take appropriate action Notes: messages longer than about 245 characters will be truncated programmers should probably include name of routine in message a newline is added by "opmsg" Problems: none known Debug: not used References: none Language: Sun OS 3.5 C Revisions: 02/22/89 Dennis O'Neill original version*/#include "output.h"#ifndef FATAL /* define here for safety */#define MESSAGE 0#define WARNING 1#define ERROR 2#define FATAL 3#endifint error_handler (level, message)int level;char *message;{ char new_message[MSGLENGTH+1]; /* text for opmsg */ int result; switch (level) { /*=====================================*//*=================| Informative message disposition |=================*/ /*=====================================*/ /* case INFO: */ case MESSAGE: { sprintf (new_message, "Info: %s", message); opmsg (new_message); result = level; return (result); break; } /*=====================================*//*=================| Warning condition handling |=================*/ /*=====================================*/ case WARNING: { sprintf (new_message, "WARNING: %s", message); opmsg (new_message); opmsg ("\tExecution continuing."); result = level; return (result); break; } /*=====================================*//*=================| Error handling |=================*/ /*=====================================*/ case ERROR: { sprintf (new_message, "ERROR: %s", message); opmsg (new_message); opmsg ("\tExecution continuing; output may be incorrect."); result = level; return (result); break; } /*=====================================*//*=================| Fatal error handling |=================*/ /*=====================================*/ case FATAL: { sprintf (new_message, "FATAL ERROR: %s", message); opmsg (new_message); opmsg ("\tExecution terminating."); exit (-1); /* result = level; return (result); */ break; } /*=====================================*//*=================| Default (error trap) |=================*/ /*=====================================*/ default: { sprintf (new_message, "ERROR: [error_handler] invalid error type %d specified;", level); strcat (new_message, " no error processing."); opmsg (new_message); sprintf (new_message, "\tMessage was: %s", message); opmsg (new_message); opmsg ("\tExecution continuing."); result = level; return (result); break; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -