Python sys 模块,print_exception() 实例源码

我们从Python开源项目中,提取了以下12个代码示例,用于说明如何使用sys.print_exception()

项目:kiota    作者:Morteo    | 项目源码 | 文件源码
def log(o, t, e=None):
  if e is None:
    print("{}: {}".format(type(o).__name__, t))
  else:
    print("{}: {} Exception:{!r}".format(type(o).__name__, t, e))
    import sys
    if hasattr(sys, 'print_exception'):
      sys.print_exception(e)
    else:
      import traceback
      traceback.print_exception(type(e), e, sys.exc_info()[2])
项目:kiota    作者:Morteo    | 项目源码 | 文件源码
def read(self):

    d = None
    if self.config['dht_type'] == 11:
      d = dht.DHT22(machine.Pin(self.config["gpio"]))
    else:
      d = dht.DHT11(machine.Pin(self.config["gpio"]))

    try:
      d.measure()
      payload = { 'temperature': str(d.temperature()), "humidity": str(d.humidity()) }
      return payload
    except Exception as e:
      Util.log(self,"DHT type: {}, failed to measure pin: '{}'".format(self.config["dht_type"], self.config["gpio"]))
      import sys
      sys.print_exception(e)
项目:mauzr    作者:eqrx    | 项目源码 | 文件源码
def run(self, reset_on_exception):
        """ Run the program. This blocks until the program is finished.

        :param reset_on_exception: If true the :func:`machine.reset` is called
                                   if an exeption other than
                                   :class:`KeyboardInterrupt` if raised.
        :type reset_on_exception: bool
        :raises Exception: If the program fails for some reason.
        """

        try:
            with self:
                self.clean()
                self.scheduler.handle()
                self.clean()
        except KeyboardInterrupt:
            pass
        except Exception as err:
            sys.print_exception(err) # pylint: disable=no-member
            if reset_on_exception:
                machine.reset()
            raise
项目:esp8266    作者:fadushin    | 项目源码 | 文件源码
def loop(self) :
        if self._verbose :
            logging.info("TaskBase: loop starting.")
        while self.isRunning() :
            if not self.disabled :
                result = None
                try :
                    result = self.perform()
                except Exception as e :
                    logging.info("An error occurred performing {}: {}".format(self, e))
                    sys.print_exception(e)
                if not result:
                    break
                else :
                    await uasyncio.sleep_ms(self.sleep_ms)
            else :
                await uasyncio.sleep_ms(914)
        self.state = STATE_STOPPED
        if self._verbose :
            logging.info("TaskBase: loop terminated.")
        return
项目:esp8266    作者:fadushin    | 项目源码 | 文件源码
def load_sinks(self, config) :
        if 'sinks' in config :
            ret = {}
            sink_configs = config['sinks']
            for name, config in sink_configs.items() :
                try :
                    sink_name = name + "_sink"
                    mod = __import__(sink_name, globals(), locals(), ['Sink'], 0)
                    ret[name] = mod.Sink(config)
                    print("loaded sink {}".format(name))
                except Exception as e :
                    print("Error: failed to load sink {} with config {}.  Error: {}".format(name, config, e))
                    sys.print_exception(e)
            return ret
        else :
            return {}
项目:esp8266    作者:fadushin    | 项目源码 | 文件源码
def run(self):
        try:
            print("Welcome to ush-{}.  Type 'help' for help.  ^D to exit".format(VERSION))
            while True:
                line = Ush.prompt().strip()
                if line:
                    tokens = line.split()
                    cmd = tokens[0]
                    if cmd in self._handlers:
                        handler = self._handlers[cmd]
                        try:
                            handler.handle_command(tokens[1:])
                        except Exception as e:
                            sys.print_exception(e)
                    else:
                        print("Unknown command: {}".format(cmd))
        except Exception as e:
            print(e)
项目:kiota    作者:Morteo    | 项目源码 | 文件源码
def publish(self, payload):

    if payload is None:
      return

    if self.config["publish_changes_only"] is False or payload != self.last_payload:
      try:
        self.gateway.publish(self.topic, json.dumps(payload))
      except Exception as e:
        import sys
        sys.print_exception(e)
      self.last_payload = payload
项目:Mk3-Firmware    作者:emfcamp    | 项目源码 | 文件源码
def run_app(path):
    import buttons
    import ugfx
    import sys

    buttons.init()
    ugfx.init()
    ugfx.clear()

    if not buttons.has_interrupt("BTN_MENU"):
        buttons.enable_menu_reset()

    try:
        # Make libraries shipped by the app importable
        app_path = '/flash/' + '/'.join(path.split('/')[:-1])
        sys.path.append(app_path)

        mod = __import__(path)
        if "main" in dir(mod):
            mod.main()
    except Exception as e:
        import sys
        import uio
        import ugfx
        s = uio.StringIO()
        sys.print_exception(e, s)
        ugfx.clear()
        ugfx.set_default_font(ugfx.FONT_SMALL)
        w=ugfx.Container(0,0,ugfx.width(),ugfx.height())
        ugfx.Label(0,0,ugfx.width(),ugfx.height(),s.getvalue(),parent=w)
        w.show()
        raise(e)
    import stm
    stm.mem8[0x40002850] = 0x9C
    import pyb
    pyb.hard_reset()
项目:micropython-kabuki    作者:dastultz    | 项目源码 | 文件源码
def run():
    loader = Loader()
    kabuki.poll_input(loader)
    sw = pyb.Switch()
    sw.callback(loader.queue_reload)
    while True:
        try:
            kabuki.run()
        except Exception as exc:
            sys.print_exception(exc)
            _install_police_lights(loader)
项目:esp8266    作者:fadushin    | 项目源码 | 文件源码
def internal_server_error(writer, e):
        sys.print_exception(e)
        error_message = "Internal Server Error: {}".format(e)
        return (yield from Server.error(writer, 500, error_message, e))
项目:esp8266    作者:fadushin    | 项目源码 | 文件源码
def stacktrace(e):
        import uio
        buf = uio.BytesIO()
        sys.print_exception(e, buf)
        return buf.getvalue()
项目:esp8266    作者:fadushin    | 项目源码 | 文件源码
def handle_receive(self, reader, writer, tcp_request):
        try:
            done, response = yield from self._handler.handle_request(reader, writer, tcp_request)
            if response and len(response) > 0:
                yield from writer.awrite(response)
            if done:
                return False
            else:
                return True
        except Exception as e:
            sys.print_exception(e)
            return False