try/exception - error block

bruce badouglas at gmail.com
Sun Aug 3 13:52:13 EDT 2014


chris.. my bad.. I wasnt intending to mail you personally.

Or I wouldn't have inserted the "thanks guys"!

> thanks guys...
>
> but in all that.. no one could tell me .. why i'm not getting any
> errs/exceptions in the err file which gets created on the exception!!!
>
> but thanks for the information on posting test code!

Don't email me privately - respond to the list :)

Also, please don't top-post.

ChrisA

On Sun, Aug 3, 2014 at 10:29 AM, bruce <badouglas at gmail.com> wrote:
> Hi.
>
> I have a long running process, it generates calls to a separate py
> app. The py app appears to generate errors, as indicated in the
> /var/log/messages file for the abrtd daemon.. The errors are
> intermittent.
>
> So, to quickly capture all possible exceptions/errors, I decided to
> wrap the entire "main" block of the test py func in a try/exception
> block.
>
> This didn't work, as I'm not getting any output in the err file
> generated in the exception block.
>
> I'm posting the test code I'm using. Pointers/comments would be helpful/useful.
>
> ////////////////////
>  the if that gets run is the fac1 logic which operates on the input
> packet/data..
>     elif (level=='collegeFaculty1'):
>         #getClasses(url, college, termVal,termName,deptName,deptAbbrv)
>       ret=getParseCollegeFacultyList1(url,content)
> ////////////////////
>
> Thanks.
>
> if __name__ == "__main__":
> # main app
>
>   try:
>     #college="asu"
>     #url="https://webapp4.asu.edu/catalog"
>     #termurl="https://webapp4.asu.edu/catalog/TooltipTerms.ext"
>
>
>     #termVal=2141
>     #
>     # get the input struct, parse it, determine the level
>     #
>
>     #cmd='cat /apps/parseapp2/asuclass1.dat'
>     #print "cmd= "+cmd
>     #proc=subprocess.Popen(cmd, shell=True,stdout=subprocess.PIPE)
>     #content=proc.communicate()[0].strip()
>     #print content
>     #sys.exit()
>
>     #s=getClasses(content)
>
>     #print "arg1 =",sys.argv[0]
>     if(len(sys.argv)<2):
>       print "error\n"
>       sys.exit()
>
>     a=sys.argv[1]
>     aaa=a
>
>     #
>     # data is coming from the parentApp.php
>     #        data has been rawurlencode(json_encode(t))
>     #        -reverse/split the data..
>     #        -do the fetch,
>     #        -save the fetched page/content if any
>     #        -create the returned struct
>     #        -echo/print/return the struct to the
>     #         calling parent/call
>     #
>
>     ##print urllib.unquote_plus(a).decode('utf8')
>     #print "\n"
>     #print simplejson.loads(urllib.unquote_plus(a))
>     z=simplejson.loads(urllib.unquote_plus(a))
>     ##z=simplejson.loads(urllib.unquote(a).decode('utf8'))
>     #z=simplejson.loads(urllib2.unquote(a).decode('utf8'))
>
>     #print "aa \n"
>     print z
>     #print "\n bb \n"
>
>     #
>     #-passed in
>     #
>     url=str(z['currentURL'])
>     level=str(z['level'])
>     cname=str(z['parseContentFileName'])
>
>
>     #
>     # need to check the contentFname
>     # -should have been checked in the parentApp
>     # -check it anyway, return err if required
>     # -if valid, get/import the content into
>     #     the "content" var for the function/parsing
>     #
>
>     ##cmd='echo ${yolo_clientFetchOutputDir}/'
>     cmd='echo ${yolo_clientParseInputDir}/'
>     #print "cmd= "+cmd
>     proc=subprocess.Popen(cmd, shell=True,stdout=subprocess.PIPE)
>     cpath=proc.communicate()[0].strip()
>
>     cname=cpath+cname
>     #print "cn = "+cname+"\n"
>     #sys.exit()
>
>
>     cmd='test -e '+cname+' && echo 1'
>     #print "cmd= "+cmd
>     proc=subprocess.Popen(cmd, shell=True,stdout=subprocess.PIPE)
>     c1=proc.communicate()[0].strip()
>
>     if(not c1):
>       #got an error - process it, return
>       print "error in parse"
>
>     #
>     # we're here, no err.. got content
>     #
>
>     #fff= "sdsu2.dat"
>     with open(cname,"r") as myfile:
>       content=myfile.read()
>       myfile.close()
>
>
>     #-passed in
>     #college="louisville"
>     #url="http://htmlaccess.louisville.edu/classSchedule/"
>     #termVal="4138"
>
>
>     #print "term = "+str(termVal)+"\n"
>     #print "url = "+url+"\n"
>
>     #jtest()
>     #sys.exit()
>
>     #getTerm(url,college,termVal)
>
>
>     ret={} # null it out to start
>     if (level=='rState'):
>       #ret=getTerm(content,termVal)
>       ret=getParseStates(content)
>
>     elif (level=='stateCollegeList'):
>         #getDepts(url,college, termValue,termName)
>       ret=getParseStateCollegeList(url,content)
>
>     elif (level=='collegeFaculty1'):
>         #getClasses(url, college, termVal,termName,deptName,deptAbbrv)
>       ret=getParseCollegeFacultyList1(url,content)
>
>     elif (level=='collegeFaculty2'):
>         #getClasses(url, college, termVal,termName,deptName,deptAbbrv)
>       ret=getParseCollegeFacultyList2(content)
>
>
>
>     #
>     # the idea of this section.. we have the resulting
>     #     fetched content/page...
>     #
>
>     a={}
>     status=False
>     if(ret['status']==True):
>
>       s=ascii_strip(ret['data'])
>       if(((s.find("</html")>-1) or (s.find("</HTML")>-1)) and
>           ((s.find("<html")>-1) or (s.find("<HTML")>-1)) and
>            level=='classSectionDay'):
>
>         status=True
>       #print "herh"
>       #sys.exit()
>
>       #
>       # build the returned struct
>       #
>       #
>
>       a['Status']=True
>       a['recCount']=ret['count']
>       a['data']=ret['data']
>       a['nextLevel']=''
>       a['timestamp']=''
>       a['macAddress']=''
>     elif(ret['status']==False):
>       a['Status']=False
>       a['recCount']=0
>       a['data']=''
>       a['nextLevel']=''
>       a['timestamp']=''
>       a['macAddress']=''
>
>     res=urllib.quote(simplejson.dumps(a))
>     ##print res
>
>     name=subprocess.Popen('uuidgen -t', shell=True,stdout=subprocess.PIPE)
>     name=name.communicate()[0].strip()
>     name=name.replace("-","_")
>
>
>   ##  if status==True:
>     name2=tmpParseDir+"/rr_"+name+".dat"
>     ofile1=open(name2,"w+")
>     ofile1.write(res)
>     ofile1.close()
>     print name2
>
>     if status==False:
>       sname=tmpParseDir+"/serr_"+name+".dat"
>       ofile1=open(sname,"w+")
>       ofile1.write(aaa)
>       ofile1.close()
>
>
>     sys.exit()
>
>
>
>
>     print "term = "+str(termVal)+"\n"
>     print "url = "+url+"\n"
>
>     getTerm(url,college,termVal)
>
>
>     print "exit"
>     sys.exit()
>
>   except Exception, e:
>     print e
>     print "pycolFac1 - error!! \n";
>     name=subprocess.Popen('uuidgen -t', shell=True,stdout=subprocess.PIPE)
>     name=name.communicate()[0].strip()
>     name=name.replace("-","_")
>     name2="/home/ihubuser/parseErrTest/pp_"+name+".dat"
>     ofile1=open(name2,"w+")
>     ofile1.write(e)
>     ofile1.write(aaa)
>     ofile1.close()
>
>     sys.exit()



More information about the Python-list mailing list