Является ли производительность в этом конкретном случае лучше, чем try-catch в этом конкретном сценарии?Какой способ является лучшим? - PullRequest
1 голос
/ 05 апреля 2019

У меня есть json, мне нужно проверить несколько значений и выполнить определенную задачу, скажем, это мой json,

s = {
    "d": {
      "f": {
        "g": 1
      }
    }
  }

и клавиши d, f и g могут присутствовать или не присутствовать, и если g == 1, мне нужно выполнить определенную задачу. Итак, что из следующего дает мне лучшую производительность.

если как-то еще это сделать

if(s.d && s.d.f && s.d.f.g && s.d.f.g ==1)
{
    doSomeJob();
}
else
{
    doSomeOtherJob();
}

попытайся поймать способ сделать это

try{
if(s.d.f.g ==1)
{
    doSomeJob();
}
}catch(e){
    doSomeOtherJob();
}

1 Ответ

1 голос
/ 17 апреля 2019

вещь с try-catch. Это то, что он всегда пытается пройти через код внутри try, и если это не сработает, он должен перебросить все внутри try обратно к началу try.
Только после перемотки он войдет в catch. Это делает использование try-catch намного медленнее.
Если вместо этого есть условие (например, выражение if-else) в начале. И утверждение ложно, тогда оно не должно проходить через if или остальную часть оператора if вообще.

Вот где более полезно использовать оператор if-else, и поэтому вы предпочитаете, чтобы try-catch был настолько коротким, насколько это необходимо.

...