在“ clicked.connect”中调用方法时,如何从方法中捕获异常。我所做的是:
try:
self.parameter_search.clicked.connect(self.search.filter)
except Exception as e :
self.error_msg.setText(str(e))
self.error_msg.exec_()
def filter(self):
if self.path is None:
raise Exception("No file was choosen")
if self.Enter.text()=="":
raise Exception("No parameter was enterd")
value=self.Enter.text()
data=self.read_file(self.path)
choosen_parameter=self.parameter.currentText()
if choosen_parameter=="Choose a Paramter":
raise Exception("No Parameter was choosen")
if value.isdigit():
data=data[data[choosen_parameter]==str(float(value)).replace('.',',')]
else:
data=data[data[choosen_parameter]==str(value)]
if data.empty:
raise Exception("This Value isn't existed please try again!")
value=self.correct(value)
data.to_csv(self.dir+choosen_parameter+"="+value+".csv", index=False,sep=";")
self.prog_msg.exec_()
当我什么都没做时,我应该怎么做才能捕捉到异常
答案 0 :(得分:2)
不能,应该理解,该连接仅向Qt事件循环指示,当信号发出时,将调用某些可调用对象,而不会进行其他操作。
如果要处理异常,请使用中间函数:
self.parameter_search.clicked.connect(self.on_clicked)
def on_clicked(self):
try:
self.search.filter()
except Exception as e :
self.error_msg.setText(str(e))
self.error_msg.exec_()