3 ms·
Looks like it's preventing most exceptions of that type from being logged. That would make sense if it's the type of exception likely to repeat itself constantl
by mbenjaminsmith 13y ago
Looks like it's preventing most exceptions of that type from being logged. That would make sense if it's the type of exception likely to repeat itself constantly (until addressed). Using a random number as a gate is easier than measuring/throttling the rate that you're logging at.
- shawabawa3 13y agoThat's the first "wait, what?". However, if you actually try and work out that horrible if statement !((_ok) ? true : (Math.random() > 0.1)) _ok ? false : !(Math.random() > 0.1) !_ok && Math.random() <= 0.1 Seems fine...until you realise that this is the condition to exit early, it's still logging 90% of the time which is almost certainly not the desired behavior. Not to mention _ok is a terrible name for that variable, and it's only ever being used as a negation. Why isn't it called _error or something?
- m12k 13y agoAlso, if we ignore for a moment how hacky it is to implement throttling like this - why would someone write if(!((_ok) ? true : (Math.random() > 0.1))) when you could use if(!(_ok || Math.random() > 0.1)) or just if(!_ok && Math.random() < 0.1) ?
- aquarion 13y agoBecause Math.random's expensive and you don't want to execute it unless you're sure.