python基础(31)raise语句

Python内置了一个关键字raise,可以主动触发异常。
raise可以抛出自定义异常,前面已经有了python内置的一些常见的异常类型。大多数情况下,内置异常已经够用了。
但是有时候你还是需要自定义一些异常:自定义异常应该继承Exception类,直接继承或者间接继承都可以,例如:

# 1.用户自定义异常类型
class TooLongExceptin(Exception):
    "this is user's Exception for check the length of name "

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

    def __str__(self):
        return "输入姓名长度是" + str(self.len) + ",超过长度了"
try:
    name = input("enter your name:")
    if len(name) > 5:
        raise TooLongExceptin(len(name))
    else:
        print(name)

except TooLongExceptin as error:  # 这里异常类型是用户自定义的
    print("打印异常信息:", error)
    def clean_username(self):
        val = self.cleaned_data.get("username")
        user = UserInfo.objects.filter(username=val).exists()
        
        if not user:
            return val
        else:
            raise ValidationError("该用户已注册!")

posted @ 2021-12-08 21:35  下个ID见  阅读(239)  评论(0)    收藏  举报