[英]Exception not raised - Python
class client():
def __init__(self,identitate,nume,cnp,filme_inchiriate,inchirieri):
self.__identitate=identitate
self.__nume=nume
self.__cnp=cnp
self.__filme_inchiriate=filme_inchiriate
self.__inchirieri=inchirieri
def get_identitate(self):
return self.__identitate
def get_nume(self):
return self.__nume
def get_cnp(self):
return self.__cnp
def get_filme_inchiriate(self):
return self.__filme_inchiriate
def get_inchirieri(self):
return self.__inchirieri
def set_identitate(self, value):
self.__identitate = value
def set_nume(self, value):
self.__nume = value
def set_cnp(self, value):
self.__cnp = value
def set_filme_inchiriate(self, value):
self.__filme_inchiriate = value
def set_inchirieri(self, value):
self.__inchirieri = value
def del_identitate(self):
del self.__identitate
def del_nume(self):
del self.__nume
def del_cnp(self):
del self.__cnp
def del_filme_inchiriate(self):
del self.__filme_inchiriate
def del_inchirieri(self):
del self.__inchirieri
identitate = property(get_identitate, set_identitate, del_identitate, "identitate's docstring")
nume = property(get_nume, set_nume, del_nume, "nume's docstring")
cnp = property(get_cnp, set_cnp, del_cnp, "cnp's docstring")
filme_inchiriate = property(get_filme_inchiriate, set_filme_inchiriate, del_filme_inchiriate, "filme_inchiriate's docstring")
inchirieri = property(get_inchirieri, set_inchirieri, del_inchirieri, "inchirieri's docstring")
def __str__(self):
return "ID: " + str(self.get_identitate()) + " Nume: " + str(self.get_nume()) + " CNP: "+ str(self.get_cnp())
from entities import *
class validator_client():
def validate_client(self,client):
erori=[]
if client.get_identitate=="":
erori.append("Nu ati introdus ID!")
if client.get_nume=="":
erori.append("Nu ati indorus nume!")
if len(erori)>0:
raise ValidatorException(erori)
def haha(self,client):
if client.get_identitate()=="1":
print "hahahah"
class ValidatorException(Exception):
def __init__(self,erori):
self.__erori=erori
def get_erori(self):
return self.__erori
def __str__(self):
return self.erori
erori = property(get_erori, None, None, None)
client1=client("",2,3,4,5)
validare=validator_client()
try:
validare.validate_client(client1)
except:
ValidatorException
print (ValidatorException)
client()
是一个具有5个属性的类,其中第一个属性是id,它具有一个getter和setter,所以该类没有问题,但是为什么在我运行此命令时不打印任何错误?
几件事:您不是在调用该getter,而是在获取该方法(除非它是一个属性,在这种情况下,为什么将其称为get)。 另外,正如@Martijn Pieters在评论中所说,您的except子句将捕获所有异常,然后打印ValidatorException
类的字符串表示形式,而不是异常实例。
至于except
子句,我想您可能正在寻找的是:
except ValidatorException as ve:
print(ve)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.