異常処理.¶
内部で例外を使用して、アプリケーションのユーザに様々なエラーが発生する可能性があることを通知します。これは主に不正確な使い方のことです。
間違いはどこで処理しますか。¶
クリックした主なエラー処理は BaseCommand.main()
それがそうです。そこでは全てのサブクラスを処理しています ClickException
そして基準は EOFError
そして KeyboardInterrupt
例外です。後者は内部で Abort
それがそうです。
アプリケーションのロジックは以下のとおりである.
もし1つが
EOFError
あるいは…。KeyboardInterrupt
もし起こったら、それを再定義してくださいAbort
それがそうです。もし1つが
ClickException
起きれば呼び出しますClickException.show()
それを表示して使用する方法はClickException.exit_code
それがそうです。もし1つが
Abort
異常を起こして文字列を印刷するAborted!
標準エラーを返し、ログアウトコードを使用してプログラムを終了します。1
それがそうです。正常に動作している場合は、ログアウトコードを使用してプログラムを終了して
0
それがそうです。
もし私が欲しくなかったら?¶
通常、呼び出しを選択することができます invoke()
自分の方法です。例えばもしあなたが Command
以下のように手動で呼び出すことができます。
ctx = command.make_context('command-name', ['args', 'go', 'here'])
with ctx:
result = command.invoke(ctx)
この場合、異常は全く処理されず、あなたが予想していたように泡が出るだろう。
Click 3.0から始めて、ご利用いただけます Command.main()
方法、しかし独立モードを無効にして、これは2つのことをします:例外処理の無効化と暗黙的な無効化 sys.exit()
最後に。
したがって、あなたはそうすることができます:
command.main(['command-name', 'args', 'go', 'here'],
standalone_mode=False)
どんな例外がありますか。¶
2つの例外ベースをクリックします ClickException
Clickがユーザに信号を送るすべての異常については Abort
Clickに実行を中止するように指示するために用いられる.
A ClickException
Vbl.ある show()
方法は、stderrまたは所与のファイル·オブジェクトにエラーメッセージを提示することができる。いくつかの操作を実行するために例外を使用したい場合は、API文書を見て、それらが何を提供しているのかを理解してください。
以下の共通サブクラスが存在する:
UsageError
問題が発生したことをユーザーに通知する。BadParameter
ある特定のパラメータに問題が発生したことをユーザに通知する.これらは通常Clickで内部処理を行い,可能な場合には余分な情報を追加する.たとえば,これらのパラメータがコールバックから開始された場合,Clickは可能な場合にパラメータ名を用いて自動的に増加する.FileError
これはFileType
もしClickがファイルを開く時に問題があったら。