นี่คือรหัสบางส่วนที่ทำงานผิดปกติ นี่เป็นเวอร์ชันที่เรียบง่ายของพฤติกรรมที่ฉันเขียน สิ่งนี้จะยังคงแสดงให้เห็นถึงพฤติกรรมแปลก ๆ และฉันมีคำถามเฉพาะบางอย่างเกี่ยวกับสาเหตุที่เกิดขึ้น
ฉันใช้ Python 2.6.6 บน Windows 7
def demo1():
    try:
        raise RuntimeError,"To Force Issue"
    except:
        return 1
    else:
        return 2
    finally:
        return 3
def demo2():
    try:
        try:
            raise RuntimeError,"To Force Issue"
        except:
            return 1
        else:
            return 2
        finally:
            return 3
    except:
        print 4
    else:
        print 5
    finally:
        print 6
ผล:
>>> print demo1()
3
>>> print demo2()
6
3
- เหตุใดการสาธิตจึงส่งคืน 3 แทนที่จะเป็น 1
- เหตุใดการสาธิตสองการพิมพ์ 6 แทนที่จะเป็นการพิมพ์ 6 w / 4 หรือ 5