如何在Python中抛出异常?
我正在尝试使用Python的“langdetect”库检测数据帧中的外语如何在Python中抛出异常?,python,exception,error-handling,Python,Exception,Error Handling,我正在尝试使用Python的“langdetect”库检测数据帧中的外语 for e in food['product_name'].dropna(): if detect(e) == 'zh': print e 在这里,我试着把在特定栏目中找到的每个中文单词都打印出来 但是,在某个时刻,我收到了以下错误消息: LangDetectException: No features in text. 我知道当发现一个数字、一个空格或一个不是单词的字符串(参考代码、邮件地址…
for e in food['product_name'].dropna():
if detect(e) == 'zh':
print e
在这里,我试着把在特定栏目中找到的每个中文单词都打印出来
但是,在某个时刻,我收到了以下错误消息:
LangDetectException: No features in text.
我知道当发现一个数字、一个空格或一个不是单词的字符串(参考代码、邮件地址…)时,就会发生这种情况
我只想抛出一个异常并相应地处理这种情况,但我不知道怎么做。以下是我的尝试:
for e in food['product_name'].dropna():
if detect(e) == 'zh':
try:
print e
except LangDetectException:
pass
有人能帮我修复这个写得不好的片段吗?很明显,它有问题,但我不知道到底是什么 如上面注释中所述,异常是由detect引发的,因此您需要在
try
块中包装该调用:
for e in food['product_name'].dropna():
try:
if detect(e) == 'zh':
print e
except LangDetectException:
pass
如上所述,异常是由detect引发的,因此您需要在
try
块中包装该调用:
for e in food['product_name'].dropna():
try:
if detect(e) == 'zh':
print e
except LangDetectException:
pass
异常发生在
检测
调用中,而不是打印
中。感谢您的评论。那么我应该更改什么?引发异常?我不清楚你在问什么。写一个保护条款:如果这是一个不想要的结果-引发一个异常看起来你在试图捕捉一个异常,而不是引发一个异常。因此,您需要将实际引发异常的代码放入try
块中。异常发生在detect
调用中,而不是print
。感谢您的评论。那么我应该更改什么?引发异常?我不清楚你在问什么。写一个保护条款:如果这是一个不想要的结果-引发一个异常看起来你在试图捕捉一个异常,而不是引发一个异常。因此,您需要将实际引发异常的代码放入try
块中。谢谢您的回答。我终于明白为什么它不起作用了!不幸的是,我现在有一个错误显示:“名称‘LangDetectException’未定义”。我应该定义异常吗?您需要使用langdetect.lang\u detect\u exception import langdetectedException中的导入自定义异常,而不是@wpercy和LukeSmith@solub顺便说一句,当您捕获异常时,最好实际执行一些操作,而不是使用pass
忽略它。当然,这取决于您的实际用例。但是您可以(例如)计算有多少项引发异常,或者将这些项保存在某个位置。谢谢您的回答。我终于明白为什么它不起作用了!不幸的是,我现在有一个错误显示:“名称‘LangDetectException’未定义”。我应该定义异常吗?您需要使用langdetect.lang\u detect\u exception import langdetectedException中的导入自定义异常,而不是@wpercy和LukeSmith@solub顺便说一句,当您捕获异常时,最好实际执行一些操作,而不是使用pass
忽略它。当然,这取决于您的实际用例。但是您可以(例如)计算有多少项引发异常,或者将这些项保存在某个位置。