JavaScriptのpython 'pass'の行に沿って何かありますか?
私は同等のjavascriptをやりたいです:
try:
# Something that throws exception
catch:
pass
pass
はPythonでは何もしません。 空のブロックに必要です。
try:
# Something that throws exception
catch:
# continue other stuff
構文エラーです 。 JavaScriptでは、空のcatch
ブロックを使用できます。
try {
// Something that throws exception
}
catch (e) {}
あり、ここにあります:
そうです、何もありません:
try {
somethingThatThrowsAnException();
} catch (e) {
}
私は同等のjavascriptをやりたいです:
try: # Something that throws exception catch: pass
Pythonにはtry/catchがありません。それはtry/exceptを持っています。したがって、catch
をexcept
に置き換えると、次のようになります。
try {
// throw any exception
} catch(err) {}
キャッチ後の空のコードブロックは、Pythonのpass
と同等です。
ベストプラクティス
ただし、この質問の解釈は少し異なる場合があります。 Python try/except blockと同じセマンティクスを採用したいとします。Pythonの例外処理は少し微妙であり、キャッチするエラーを指定できます。
実際、特定のエラータイプのみをキャッチすることがベストプラクティスと見なされています。
したがって、Python=のベストプラクティスバージョンは、処理する準備ができている例外のみをキャッチし、バグを非表示にしないためです。
try:
raise TypeError
except TypeError as err:
pass
おそらく適切なエラータイプをサブクラス化する必要があります。標準のJavaScriptには、非常に豊富な例外階層がありません。 TypeError
を選択したのは、PythonのTypeError
と同じスペルと類似したセマンティクスがあるためです。
これと同じセマンティクスをJavascriptで実行するには、まず すべてのエラーをキャッチする必要があります であり、それを調整する制御フローが必要です。したがって、エラーがif条件でpass
にしたいエラーのタイプでないかどうかを判断する必要があります。 else制御フローの欠如は、TypeError
を沈黙させるものです。そして、このコードを使用すると、理論的には、他のすべてのタイプのエラーが表面に浮上して修正されるか、少なくとも追加のエラー処理のために識別されるはずです。
try { // try:
throw TypeError() // raise ValueError
} catch(err) { // # this code block same behavior as
if (!(err instanceof TypeError)) { // except ValueError as err:
throw err // pass
}
}
コメント歓迎!