pkgrepo.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:solaris-ips 作者: oracle 项目源码 文件源码
def handle_errors(func, *args, **kwargs):
        """Catch exceptions raised by the main program function and then print
        a message and/or exit with an appropriate return code.
        """

        traceback_str = misc.get_traceback_message()

        try:
                # Out of memory errors can be raised as EnvironmentErrors with
                # an errno of ENOMEM, so in order to handle those exceptions
                # with other errnos, we nest this try block and have the outer
                # one handle the other instances.
                try:
                        __ret = func(*args, **kwargs)
                except (MemoryError, EnvironmentError) as __e:
                        if isinstance(__e, EnvironmentError) and \
                            __e.errno != errno.ENOMEM:
                                raise apx._convert_error(__e)
                        error("\n" + misc.out_of_memory())
                        __ret = EXIT_OOPS
        except SystemExit as __e:
                raise __e
        except (IOError, PipeError, KeyboardInterrupt) as __e:
                # Don't display any messages here to prevent possible further
                # broken pipe (EPIPE) errors.
                if isinstance(__e, IOError) and __e.errno != errno.EPIPE:
                        error(str(__e))
                __ret = EXIT_OOPS
        except apx.VersionException as __e:
                error(_("The pkgrepo command appears out of sync with the "
                    "libraries provided\nby pkg:/package/pkg. The client "
                    "version is {client} while the library\nAPI version is "
                    "{api}.").format(client=__e.received_version,
                     api=__e.expected_version))
                __ret = EXIT_OOPS
        except apx.BadRepositoryURI as __e:
                error(str(__e))
                __ret = EXIT_BADOPT
        except apx.InvalidOptionError as __e:
                error("{0} Supported formats: {1}".format(
                    str(__e), LISTING_FORMATS))
                __ret = EXIT_BADOPT
        except (apx.ApiException, sr.RepositoryError) as __e:
                error(str(__e))
                __ret = EXIT_OOPS
        except:
                traceback.print_exc()
                error(traceback_str)
                __ret = 99
        return __ret
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号