Бих използвал блока try/catch, когато нормалният път през кода трябва да продължи без грешка, освен ако наистина има някои изключителни условия - като сървърът не работи, вашите идентификационни данни са изтекли или са неправилни. Не бих го използвал непременно, за да обработвам неизключителни грешки - да речем, че текущият потребител не е в правилната роля. Тоест, когато можете разумно да очаквате и да се справите с грешка, която не е извънредно условие, мисля, че трябва да направите своите проверки.
В случая, който описахте - настройка и изпълнение на заявка, блокът try/catch е отличен начин да се справите с него, както обикновено очаквате заявката да успее. От друга страна, вероятно ще искате да проверите дали съдържанието на резултата е това, което очаквате с логиката на контролния поток, а не просто да се опитвате да използвате данни, които може да не са валидни за вашата цел.
Едно нещо, за което искате да внимавате, е небрежното използване на try/catch. Try/catch не трябва да се използва, за да се предпазите от лошо програмиране - типът "Не знам какво ще се случи, ако направя това, така че ще го обвия в опит/улов и се надявам на най-доброто" на програмиране. Обикновено ще искате да ограничите видовете изключения, които хващате, до тези, които не са свързани със самия код (сървър не работи, лоши идентификационни данни и т.н.), за да можете да намерите и коригирате грешки, които са свързани с кода (нулеви указатели и т.н. .).