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