python编写异常处理程序。 要求:输入姓名和月工资计算年薪,如果输入格式不正确则抛出异常。 提示:程序中的异常可能来自两个方面,一是输入工资信息时输入了非数字格式,会抛出 NameError 或 SyntaxError 异常;二是输入工资范围不正确,如输入了负值或数值太大,这 是一个用户自定义的异常。
时间: 2024-03-15 09:44:16 浏览: 26
好的,以下是一个Python编写的异常处理程序,可以实现上述要求:
```
class InvalidSalaryInputError(Exception):
pass
def calculate_annual_salary(name, monthly_salary):
try:
monthly_salary = float(monthly_salary)
except (NameError, SyntaxError, ValueError):
raise InvalidSalaryInputError("Invalid salary input: monthly salary must be a number.")
if monthly_salary < 0 or monthly_salary > 1000000:
raise InvalidSalaryInputError("Invalid salary input: monthly salary must be between 0 and 1000000.")
annual_salary = monthly_salary * 12
return f"{name}'s annual salary is {annual_salary}."
if __name__ == "__main__":
name = input("Please enter your name: ")
monthly_salary = input("Please enter your monthly salary: ")
try:
print(calculate_annual_salary(name, monthly_salary))
except InvalidSalaryInputError as e:
print(e)
```
程序中定义了一个 `InvalidSalaryInputError` 异常类,用于处理输入工资信息不正确的情况。`calculate_annual_salary` 函数用于计算年薪,如果输入的月薪不是数字或超出范围,则会抛出 `InvalidSalaryInputError` 异常。在主程序中,用户输入姓名和月薪,然后调用 `calculate_annual_salary` 函数计算年薪,如果输入不正确则捕获并打印异常信息。