javascriptでpython 'pass'の行に沿って何かがありますか?
次のJavaScriptに相当するものを実行したい:
try:
# Something that throws exception
catch:
pass
javascriptでpython 'pass'の行に沿って何かがありますか?
次のJavaScriptに相当するものを実行したい:
try:
# Something that throws exception
catch:
pass
pass
Pythonでは何もしません。空のブロックに必要なのは
try:
# Something that throws exception
catch:
# continue other stuff
構文エラーです。catch
JavaScriptでは、空のブロックを使用できます。
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) {}
catch の後の空のコード ブロックは、Python のpass
.
ベストプラクティス
ただし、この質問の解釈は少し異なるかもしれません。Python の try/except ブロックと同じセマンティクスを採用するとします。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
}
}
コメント大歓迎!