Make sure you also read the following reply written by myself on using the EditContext:
It’s not really recommended to use the EditContext as the code will run out of that scope when an exception occurs. I would rather suggest to use Item.Editing. The ItemEditing class allows you to use transaction-like methods such as AcceptChanges, BeginEdit, CancelEdit, EndEdit, RejectChanges, etc. This will improve the readability and flow of your code.
You might expect the using-contraint to be the best option, but it isn’t! Please be aware of this when you write production code.