python3 try except or_Python中的Try/Except无法正确运行

我正在开发下一个实现pymongo的代码。我想捕捉每个错误,例如,在与数据库连接期间。但是,如果我写一个随机的IP(不存在),try/cath就不能正常运行尽管IP不存在,仍打印“确定”。在from pymongo import MongoClient

from pymongo import errors

class Mongo:

def __init__(self):

db = 'random ip'

port = 27017

mps = 50

user = 'admin'

pw = 'pw'

to=100

print('Creating MongoClient ......')

print 'Establishing connection with MongoDB ...... ',

try:

self.client = MongoClient(db, port, maxPoolSize=mps,

username=user, password=pw,

connectTimeoutMS=to)

print 'OK'

except pymongo.errors.ConnectionFailure, e:

print 'ERROR'

logging.error("Connection problem: %s", e)

# Search checks in MongoDB

def search(self):

collections = ['new', 'old']

try:

for data_type in collections:

db = self.client.get_database('db')

collection = db[data_type + '_data']

print 'Opening ' + data_type + '_data DB ...... ',

cursor = collection.find({})

print 'OK'

writeTempData(cursor, data_type)

except Exception as e:

print 'ERROR'

logging.error("Unable find data in DB: %s", e)

if __name__ == '__main__':

# Get json from MongoDB

mongo = Mongo()

mongo.search()

输出:

^{pr2}$

我做错什么了?在

先谢谢你,迈克。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`try-except`是Python用于异常处理的结。它允许我们在代码块捕获异常并采取相应的操作,以避免程序崩溃。 `try-except`语句的基本语法如下: ```python try: # 可能会出现异常的代码块 # 如果出现异常,会立即跳转到对应的except代码块 pass except ExceptionType: # 异常处理代码块 # 在此处处理捕获到的异常 pass ``` 在上述代码,`try`后面的代码块是我们要执行的可能会发生异常的代码。如果在执行过程发生了指定类型的异常(可以是内置异常或自定义异常),程序会跳转到对应的`except`代码块进行处理。 接下来,让我们来看看`pass`关键字的作用。`pass`是Python的一个空语句,它不执行任何操作。在异常处理,有时我们可能不需要在`except`代码块执行任何操作,只需要简单地忽略异常并继续执行后续代码。此时,可以使用`pass`关键字来占位,表示不做任何处理。 例如,下面的代码演示了如何使用`try-except`和`pass`来处理异常并继续执行: ```python try: num = 10 / 0 # 这里会触发 ZeroDivisionError 异常 except ZeroDivisionError: pass # 忽略异常,继续执行后续代码 print("程序继续执行") ``` 在上述代码,由于除数为0,会触发`ZeroDivisionError`异常。但由于我们在`except`代码块使用了`pass`,所以异常被忽略掉了,程序继续执行后续代码,输出结果为:"程序继续执行"。 希望这样的解释对你有所帮助!如果你还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值