1
Pythonでosエラーをキャッチできるかどうかは誰にも分かりません。ネットワークドライブをマッピングするスクリプトを作成しています。 存在しないパスの名前をエンドユーザーが入力すると、エラーが表示されず、問題が発生する可能性があります。 pycharm IDEとともに、Pythonバージョン3.6のサブプロセスモジュールを使用しています。 存在しない場所にマップすると、次のエラーが表示されます。「システムエラー53が発生しました。ネットワークパスが見つかりませんでした」サブプロセスでosエラーをキャッチできません
最後に、OSError、Exception、およびBaseExceptionを使用してエラーをキャッチしようとしました。私が使用したそれぞれはエラーメッセージを返さない。
以下は、実行しているスクリプトの例です。
def StoreInfo():
receiving = input("Enter receiving: ")
try:
subprocess.call(r'net use y: \\' + receiving + '\\act\\rto\\transent', shell=True) #timeout=30
except OSError:
#print("An unexpected error:" , sys.exc_info()[0])
print(sending+"'s path does not exit!")
StoreInfo()
何のpython Excpetionが提起されていないためです。 "システムエラー53が発生しました。ネットワークパスが見つかりませんでした" - Windowsエラー、Pythonではない –
'subprocess.check_call'を使用すると、プロセスの戻りコードも渡す必要があります。 @YaroslavSurzhikovは正しいですが、これによってPythonエラーは発生しません。なぜそれを捕まえることができないのですか? –