# GESP等级：四级 | GESP Python 四级考点
"""
演示1：为什么需要 try-except？
课程时间：00:00-10:00
焦点：没有异常处理的程序会崩溃
"""

print("=" * 50)
print("【没有 try-except 的程序——会崩溃】")
print("=" * 50)


def without_try():
    """没有异常处理，程序直接崩溃"""
    # 运行以下代码，输入 abc 试试会发生什么
    n = int(input("请输入一个数字: "))  # 输入 abc 会引发 ValueError
    print(f"你输入的数字是: {n}")
    print("程序正常结束")  # 上一条出错后，这行永远不会执行


# ===== 取消注释运行下面的代码试试 =====
# without_try()
# 运行后输入 abc，程序会直接报错退出

print("\n\n")
print("=" * 50)
print("【有 try-except 的程序——不崩溃】")
print("=" * 50)


def with_try():
    """使用 try-except，程序不会崩溃"""
    try:
        n = int(input("请输入一个数字: "))  # 即使输入 abc 也不会崩溃
        print(f"你输入的数字是: {n}")
    except:
        print("你输入的不是有效数字！程序继续运行。")

    print("→ 程序正常结束，没有崩溃！")


if __name__ == "__main__":
    with_try()
