1

次の例のように、重複/冗長な例外がキャッチされているケースをキャッチするために、pylint (または他のコード分析ツール) を取得する方法が見つかりませんでした。

"""doc"""
import socket
try:
    pass
except (ConnectionError, IOError, OSError, socket.error):
    # ConnectionError inherits from OSError
    # socket.error and IOError are aliases for OSError
    pass

ここで、ConnectionError、IOError、および socket.error が、except-clause で OSError によって既にカバーされていることについて苦情を申し立てたいと思います。

In [1]: import socket

In [2]: OSError
Out[2]: builtins.OSError

In [3]: socket.error
Out[3]: builtins.OSError

In [4]: IOError
Out[4]: builtins.OSError

In [5]: ConnectionError, ConnectionError.__bases__
Out[5]: (builtins.ConnectionError, (builtins.OSError,))

これは存在しますか?そうでない場合、これは良い/悪い考えでしょうか?

4

1 に答える 1