Recommendation 64: Increase the tester-doer mode for loops instead of placing the try-catch inside the loop
If you need to throw an exception in a loop, you need to be particularly careful that throwing an exception is a fairly performance-impacting process. You should try to judge some of the conditions of the anomaly in the loop and then process it according to the conditions.
Do a test:
Stopwatch Watch =stopwatch.startnew (); intx =0; for(inti =0; I <10000; i++) { Try { intj = I/x; } Catch{}} Console.WriteLine (watch. Elapsedmilliseconds); Watch=stopwatch.startnew (); for(inti =0; I <10000; i++) { if(x = =0) { Continue; } intj = I/x; } Console.WriteLine (watch. Elapsedmilliseconds); Console.readkey ();
The output is:
796
0
In the above code, we foresee that the code will be able to occur dividebyzeroexception anomalies, and then, the adjustment strategy, the conditions of the exception occurred special treatment: Continue let the efficiency has been greatly improved.
Turn from: 157 recommendations for writing high-quality code to improve C # programs Minjia
"Go" writing high-quality Code 157 recommendations for improving C # programs--recommendation 64: Adding Tester-doer mode to loops instead of placing try-catch inside loops