编写一个Python程序，该程序接收用户输入的三角形的三个边长，然后根据边长判断并输出三角形的类型（等边三角形、等腰三角形或一般三角形）。请以Python代码的形式给出。 注意，程序需要有输入错误处理。例如，当输入的三个边长无法构成三角形时，程序应提示用户重新输入。程序应该持续运行，直到用户输入的3个值能构成合法的三角形，或用户输入'exit'来退出程序。程序的每行代码前都要加注释说明该行的作用。储存在.md文件中。生成如下格式的markdown文件，代码段使用```表示：  
```markdown  
# 三角形类型判断程序  

## 程序概述  
该程序接收用户输入的三角形三个边长，判断并输出三角形的类型，同时具备输入错误处理功能，确保输入能够构成合法三角形。  

## Python代码  

```python  
# 您的代码将出现在这里  
```  
```
user
```markdown
# 三角形类型判断程序

## 程序概述
该程序接收用户输入的三角形三个边长，判断并输出三角形的类型，同时具备输入错误处理功能，确保输入能够构成合法三角形。

## Python代码

```python
# 导入sys模块，用于处理程序退出
import sys

# 定义一个函数，用于判断三角形类型
def judge_triangle(a, b, c):
    # 如果三个边长都相等，则是等边三角形
    if a == b == c:
        return '等边三角形'
    # 如果只有两个边长相等，则是等腰三角形
    elif a == b or a == c or b == c:
        return '等腰三角形'
    # 否则是普通三角形
    else:
        return '一般三角形'

# 定义一个函数，用于检查是否可以构成三角形
def is_triangle(a, b, c):
    # 如果任意两边之和小于或等于第三边，则不能构成三角形
    return (a + b > c) and (a + c > b) and (b + c > a)

# 主循环，持续运行直到输入'exit'或输入合法的三角形
while True:
    # 捕捉输入错误和异常
    try:
        # 获取用户输入的三个边长
        input_str = input("请输入三角形的三个边长，以空格分隔 (或输入'exit'退出程序)：")
        # 如果用户输入'exit'，退出程序
        if input_str.lower() == 'exit':
            print("程序已退出。")
            sys.exit()
        # 将输入的字符串分割成列表
        sides = input_str.split()
        # 如果输入的值数量不是3，提示错误
        if len(sides) != 3:
            print("请输入三个数。")
            continue
        # 将输入的边长转换为整数
        a, b, c = map(int, sides)
        # 检查是否可以构成三角形
        if not is_triangle(a, b, c):
            print("这三条边无法构成三角形，请重新输入！")
            continue
        # 判断并输出三角形类型
        print(f"该三角形是{judge_triangle(a, b, c)}")
        break  # 成功输出结果后退出循环
    except Exception as e:
        # 输入异常，提示用户重新输入
        print(f"输入有误，请输入三个整数：{e}")
```
```
assistant