代码错误与异常

常见错误

语法错误

SyntaxError: invalid syntax 这段语句就是常见的语法错误

# 这边错误原因是if代码后面需要以:结尾,但是这边没有
num = input('请输入密码:')
if len(num) >= 5
    print('密码位数输入正确')
else:
    print("密码位数输入不正确,请重新输入")


  File "E:\python_test\Reptile Fiction\fiction.py", line 10
    if num >= 5
               ^
SyntaxError: invalid syntax

输入错误

TypeError 这个是输入错误的单词

# 错误原因:num是字符串,但下面的if语句用num与数字比较,所以不对
num = input('请输入密码:')
if num >= 5:
    print('密码位数输入正确')
else:
    print("密码位数输入不正确,请重新输入")

Traceback (most recent call last):
  File "E:\python_test\Reptile Fiction\fiction.py", line 13, in <module>
    if num >= 5:
TypeError: '>=' not supported between instances of 'str' and 'int'

异常捕获

定义一个try except finally语句,把不确定的代码写入try里面,有异常就会执行except,最终都会执行finally语句

#1、异常捕获
try:
    pass
except Exception as e: #可以指定很细的异常如ValueError,也可以都捕获用Exception
    pass #有异常会执行
else:
    pass #没异常时执行
finally:
    pass #都最终会执行

#2、异常抛出 raise
def raise_num(num):
    if num<100:
        raise ValueError(f"值错误:{num}")
    else:
        print("可输入的数字不能大于等于100")

raise_num(40) #ValueError: 值错误:40

自定义异常(了解)

#3、自定义异常
class MyException(Exception):

    def __init__(self,value):
        self.value=value

    def __str__(self):
        return repr(self.value)