##// END OF EJS Templates
SChainError class has been added
Miguel Valdez -
r688:d966412ce1e3
parent child
Show More
@@ -5,7 +5,8 notification class and a standard error handing class.
5
5
6 $Id: admin.py 3966 2015-12-01 14:32:29Z miguel.urco $
6 $Id: admin.py 3966 2015-12-01 14:32:29Z miguel.urco $
7 """
7 """
8 import os
8 import os, sys
9 import traceback
9 import smtplib
10 import smtplib
10 import ConfigParser
11 import ConfigParser
11 import StringIO
12 import StringIO
@@ -164,7 +165,7 class SchainNotify:
164
165
165 Exceptions: None.
166 Exceptions: None.
166 """
167 """
167
168
168 # note that the main configuration file is unavailable
169 # note that the main configuration file is unavailable
169 # the best that can be done is send an email to root using localhost mailserver
170 # the best that can be done is send an email to root using localhost mailserver
170 confObj = SchainConfigure()
171 confObj = SchainConfigure()
@@ -272,8 +273,8 class SchainNotify:
272
273
273 print "***** Your system administrator has been notified *****"
274 print "***** Your system administrator has been notified *****"
274
275
275 class SchainError:
276 class SchainError(Exception):
276 """SchainError is an exception class that is thrown for all known errors in using Schain Py lib.
277 """SchainError is an exception class that is thrown for all known errors using Schain Py lib.
277
278
278 Usage example:
279 Usage example:
279
280
@@ -293,11 +294,12 class SchainError:
293 """
294 """
294
295
295
296
296 def __init__(self, strInterpretation, exceptionList):
297 def __init__(self, strInterpretation, exceptionList=None):
297 """ __init__ gathers the interpretation string along with all information from sys.exc_info().
298 """ __init__ gathers the interpretation string along with all information from sys.exc_info().
298
299
299 Inputs: strIntepretation - A string representing the programmer's interpretation of
300 Inputs:
300 why the exception occurred
301 strIntepretation - A string representing the programmer's interpretation of
302 why the exception occurred
301
303
302 exceptionList - a list of strings completely describing the exception.
304 exceptionList - a list of strings completely describing the exception.
303 Generated by traceback.format_exception(sys.exc_info()[0],
305 Generated by traceback.format_exception(sys.exc_info()[0],
@@ -311,6 +313,11 class SchainError:
311 Exceptions: None.
313 Exceptions: None.
312 """
314 """
313
315
316 if not exceptionList:
317 exceptionList = traceback.format_exception(sys.exc_info()[0],
318 sys.exc_info()[1],
319 sys.exc_info()[2])
320
314 self._strInterp = strInterpretation
321 self._strInterp = strInterpretation
315 self._strExcList = exceptionList
322 self._strExcList = exceptionList
316
323
@@ -326,7 +333,7 class SchainError:
326
333
327 Exceptions: None.
334 Exceptions: None.
328 """
335 """
329 excStr = 'The following Schain Python exception has occurred:\n'
336 excStr = ''
330 excStr = excStr + self._strInterp + '\n\n'
337 excStr = excStr + self._strInterp + '\n\n'
331
338
332 if self._strExcList != None:
339 if self._strExcList != None:
@@ -336,6 +343,7 class SchainError:
336 return excStr
343 return excStr
337
344
338 def __str__(self):
345 def __str__(self):
346
339 return(self.getExceptionStr())
347 return(self.getExceptionStr())
340
348
341
349
@@ -361,7 +369,7 class SchainError:
361 return excStr
369 return excStr
362
370
363 if __name__ == '__main__':
371 if __name__ == '__main__':
364
372
365 test = SchainNotify()
373 test = SchainNotify()
366
374
367 test.sendAlert('This is a message from the python module SchainNotify', 'Test from SchainNotify')
375 test.sendAlert('This is a message from the python module SchainNotify', 'Test from SchainNotify')
General Comments 0
You need to be logged in to leave comments. Login now