Якщо у вашій заяві вилову потрібно отримати доступ до змінної, оголошеної у використовуваному операторі, то всередині це ваш єдиний варіант.
Якщо у вашій заяві про вилов потрібен об'єкт, на який посилається у використанні, перед тим, як він буде утилізований, то всередині це ваш єдиний варіант.
Якщо у вашій заяві про улов трапляються дії невідомої тривалості, як-от показ повідомлення користувачеві, і ви хочете розпоряджатися своїми ресурсами до того, як це станеться, тоді зовні - ваш найкращий варіант.
Кожен раз, коли у мене є сценарій, подібний до цього, блок пробного лову зазвичай є іншим способом, що надалі збільшує стек виклику від використання. Для методу не типово знати, як поводитися з винятками, що трапляються всередині нього.
Тож мої загальні рекомендації знаходяться назовні - шлях зовні.
private void saveButton_Click(object sender, EventArgs args)
{
try
{
SaveFile(myFile); // The using statement will appear somewhere in here.
}
catch (IOException ex)
{
MessageBox.Show(ex.Message);
}
}