Пример #1
0
def main():
    class __DemoException(Exception):
        pass

    def s1():
        return s2()

    def s2():
        return s3()

    def s3():
        raise __DemoException("A demo exception occurred")

    def py_exc():
        try:
            s1()
        except:
            msgbox = ErrorDialog(*sys.exc_info())
            msgbox.exec_()

    def tg_exc():
        try:
            import PyTango
            PyTango.Except.throw_exception('TangoException',
                                           'A simple tango exception',
                                           'right here')
        except PyTango.DevFailed:
            msgbox = ErrorDialog(*sys.exc_info())
            msgbox.exec_()

    def tg_serv_exc():
        try:
            import PyTango
            dev = PyTango.DeviceProxy("sys/tg_test/1")
            dev.read_attribute("throw_exception")
        except PyTango.DevFailed:
            msgbox = ErrorDialog(*sys.exc_info())
            msgbox.exec_()
        except:
            msgbox = ErrorDialog(*sys.exc_info())
            msgbox.exec_()

    def py_tg_serv_exc():
        try:
            import PyTango
            PyTango.Except.throw_exception('TangoException',
                                           'A simple tango exception',
                                           'right here')
        except PyTango.DevFailed as df1:
            try:
                import StringIO
                origin = StringIO.StringIO()
                traceback.print_stack(file=origin)
                origin.seek(0)
                origin = origin.read()
                PyTango.Except.re_throw_exception(
                    df1, 'PyDs_Exception', 'DevFailed: A simple tango '
                    'exception', origin)
            except PyTango.DevFailed:
                msgbox = ErrorDialog(*sys.exc_info())
                msgbox.exec_()

    app = Application()
    app.setApplicationName("Message dialog demo")
    app.setApplicationVersion("1.0")

    panel = QtGui.QWidget()
    layout = QtGui.QVBoxLayout()
    panel.setLayout(layout)

    m1 = QtGui.QPushButton("Python exception")
    layout.addWidget(m1)
    m1.clicked.connect(py_exc)
    m2 = QtGui.QPushButton("Tango exception")
    layout.addWidget(m2)
    m2.clicked.connect(py_exc)
    layout.addWidget(m2)
    m3 = QtGui.QPushButton("Tango server exception")
    layout.addWidget(m3)
    m3.clicked.connect(tg_serv_exc)
    layout.addWidget(m3)
    m4 = QtGui.QPushButton("Python tango server exception")
    layout.addWidget(m4)
    m4.clicked.connect(py_tg_serv_exc)
    layout.addWidget(m4)

    panel.show()
    sys.exit(app.exec_())
Пример #2
0
def main():
    class __DemoException(Exception):
        pass

    def s1():
        return s2()

    def s2():
        return s3()

    def s3():
        raise __DemoException("A demo exception occurred")

    def py_exc():
        try:
            s1()
        except:
            msgbox = ErrorDialog(*sys.exc_info())
            msgbox.exec_()

    def tg_exc():
        try:
            import PyTango

            PyTango.Except.throw_exception("TangoException", "A simple tango exception", "right here")
        except PyTango.DevFailed:
            msgbox = ErrorDialog(*sys.exc_info())
            msgbox.exec_()

    def tg_serv_exc():
        try:
            import PyTango

            dev = PyTango.DeviceProxy("sys/tg_test/1")
            dev.read_attribute("throw_exception")
        except PyTango.DevFailed:
            msgbox = ErrorDialog(*sys.exc_info())
            msgbox.exec_()
        except:
            msgbox = ErrorDialog(*sys.exc_info())
            msgbox.exec_()

    def py_tg_serv_exc():
        try:
            import PyTango

            PyTango.Except.throw_exception("TangoException", "A simple tango exception", "right here")
        except PyTango.DevFailed as df1:
            try:
                import StringIO

                origin = StringIO.StringIO()
                traceback.print_stack(file=origin)
                origin.seek(0)
                origin = origin.read()
                PyTango.Except.re_throw_exception(
                    df1, "PyDs_Exception", "DevFailed: A simple tango " "exception", origin
                )
            except PyTango.DevFailed:
                msgbox = ErrorDialog(*sys.exc_info())
                msgbox.exec_()

    app = Application()
    app.setApplicationName("Message dialog demo")
    app.setApplicationVersion("1.0")

    panel = QtGui.QWidget()
    layout = QtGui.QVBoxLayout()
    panel.setLayout(layout)

    m1 = QtGui.QPushButton("Python exception")
    layout.addWidget(m1)
    m1.clicked.connect(py_exc)
    m2 = QtGui.QPushButton("Tango exception")
    layout.addWidget(m2)
    m2.clicked.connect(py_exc)
    layout.addWidget(m2)
    m3 = QtGui.QPushButton("Tango server exception")
    layout.addWidget(m3)
    m3.clicked.connect(tg_serv_exc)
    layout.addWidget(m3)
    m4 = QtGui.QPushButton("Python tango server exception")
    layout.addWidget(m4)
    m4.clicked.connect(py_tg_serv_exc)
    layout.addWidget(m4)

    panel.show()
    sys.exit(app.exec_())