のサードパーティ モジュールを使用する Python スクリプトを作成していますGDAL
。関数はGDAL
、エラーが発生したときに例外を発生させませんが、メッセージを に送信しますstdout
。通常、GDAL
関数でエラーが発生してもプロセスを停止する必要はなく、エラーが発生したことを知る必要はありません。
stdout
コンソールに出力される前に、送信されているメッセージを傍受する方法はありますか? GDAL
メッセージは、私が独自のコードで提供したメッセージに干渉します。
"Python Gotchas"で説明されているように、次のように を使用して例外を有効にすることができますgdal.UseExceptions()
。
from osgeo import gdal
dsrc = gdal.Open('nonexist')
# ... silence
gdal.UseExceptions()
dsrc = gdal.Open('nonexist')
# Traceback (most recent call last):
# File "<interactive input>", line 1, in <module>
# RuntimeError: `nonexist' does not exist in the file system,
# and is not recognised as a supported dataset name.
その後、常にtry
except
ブロックを使用して実際のエラー メッセージ文字列を取得できます。
try:
dsrc = gdal.Open('nonexist')
except RuntimeError as e:
print(str(e))
エラーメッセージが出力されます:
「nonexist」はファイル システムに存在せず、サポートされているデータセット名として認識されません。