Python internal error Handling -


i'm having issues program closing @ random stages , not sure why.

at first, thought because getting error added error handle. still reason closes after few days of running , no error displayed. code below

import requests import lxml.html lh import sys import time clint.textui import puts, colored  api_url = "http://urgmsg.net/livenosaas/ajax/update.php"  class scraper (object):     id_stamp = 0      def __init__(self, timeout, recent_messages=true):         self.timeout = timeout         self.handlers = []         self.recent_messages = recent_messages      def register_handler(self, handler):         self.handlers.append(handler)         return handler      def scrape(self):         try:             resp = requests.get(api_url, params={'f': self.id_stamp}).json()         except requests.exceptions.connectionerror e:             puts("error encountered when connecting urgmsg: ", newline=false)             puts(colored.red(e.__class__.__name__), newline=false)             puts(" " + e.message)             return          if not resp['updated']:             return          old_id_stamp = self.id_stamp         self.id_stamp = resp['idstamp']         # if old_id_stamp 0, first scrape         # return whole bunch of recent past messages         if not self.recent_messages , old_id_stamp == 0: return          # pager messages returned newest oldest, want         # process them oldest newest         frags = lh.fragments_fromstring(resp['data'])[::-1]         frag in frags:             msg = pagermessage(frag)             handler in self.handlers:                 handler(msg)      def run(self):         while true:             self.scrape()             time.sleep(self.timeout)  class pagermessage:     def __init__(self, fragment):         children = fragment.getchildren()         self.datetime = children[0].text         self.text = children[1].text         # channel starts `- `         self.channel = children[1].getchildren()[0].text[2:]         self.response = 'cfsres' in self.text     def __str__(self):         return "{} [{}]: {}".format(self.channel, self.datetime, self.text)  if __name__ == "__main__":     scraper = scraper(5)     @scraper.register_handler     def handler(msg):         puts(colored.yellow(msg.channel), newline=false)         puts(" [", newline=false)         puts(colored.green(msg.datetime), newline=false)         puts("] ", newline=false)         if msg.response:             puts(colored.red(msg.text))         else:             puts(msg.text)     scraper.run() 

have set part out wrong ?

except requests.exceptions.connectionerror e:                 puts("error encountered when connecting urgmsg: ", newline=false)                 puts(colored.red(e.__class__.__name__), newline=false)                 puts(" " + e.message)                 return 

as suggested @sobolevn change

except: e:                 puts("error encountered", newline=false)                 puts(colored.red(e.__class__.__name__), newline=false)                 puts(" " + e.message)                 return 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -