web-dev-qa-db-ja.com

JavaScriptパス

JavaScriptのpython 'pass'の行に沿って何かありますか?

私は同等のjavascriptをやりたいです:

try:
  # Something that throws exception
catch:
  pass
34
Intra

passはPythonでは何もしません。 空のブロックに必要です。

try:
    # Something that throws exception
catch:

# continue other stuff

構文エラーです 。 JavaScriptでは、空のcatchブロックを使用できます。

try {
    // Something that throws exception
}
catch (e) {}
45
Matt Ball

あり、ここにあります:

そうです、何もありません:

try {
    somethingThatThrowsAnException();
} catch (e) {
}
34

私は同等のjavascriptをやりたいです:

try:
  # Something that throws exception
catch:
  pass

Pythonにはtry/catchがありません。それはtry/exceptを持っています。したがって、catchexceptに置き換えると、次のようになります。

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
  } 
}                       

コメント歓迎!

4
Aaron Hall