如何从boto导入特定错误?

kev*_*kev 5 boto3

运行我的代码时,我收到此异常(打印类进行调试):

An error occurred (DBInstanceNotFound) when calling the DescribeDBInstances operation: DBInstance <instance name> not found.
<class 'botocore.errorfactory.DBInstanceNotFoundFault'>
Run Code Online (Sandbox Code Playgroud)

我想像这样正确处理异常:

from botocore.exceptions import DBInstanceNotFoundFault
from botocore.errorfactory import DBInstanceNotFoundFault
try:
    <fetch info about db instance>
except DBInstanceNotFoundFault as e:
    <handle error>
Run Code Online (Sandbox Code Playgroud)

不幸的是DBInstanceNotFoundFault既没有在存在botocore.exceptions也不botocore.errorfactory.我已经克隆了boto3以及botocoregrep'd for DBInstanceNotFoundFault但是找不到它.

我该如何导入它?

Kar*_*ung 10

对于boto3异常,您实际上并不导入错误 - 而是通过客户端访问它.看看这个:https://github.com/boto/boto3/issues/1195#issuecomment-317108970

import boto3
rds = boto3.client('rds')
try:
    ...
except rds.exceptions.DBInstanceNotFoundFault:
    ...
Run Code Online (Sandbox Code Playgroud)