Aš suprantu, kas tai yra, tesiog nesupratau, ką turėjai omenyje sakydamas kiekvienu atveju tvarkytis kitaip.

Nebūtinai
visur kitaip, tiesiog tu turi kuo išorinesniam (

) levely turėti tą kontrolę, ką daryti konkrečiu atveju... Tavo funkcijos darbas yra tik supaprastinti užklausos siuntimą, ne ji turi nuspręsti, ką daryti kilus klaidai. Dabartiniu atveju tu ne tik išvedi iš karto, bet niekaip neiškeli klaidos aukščiau ir neturėsi jos toje programos dalyje, kurioje kvieti query()...
Jei tau tinka, kad vartotojui mėtosi errorai su echo belekaip ir belekur – tai ok. Eisi prie MVC, frameworko ar kitokios normalios struktūros – išvedinėti iš Controllerio netgi nelabai logiškai galėsi.
Na ok, tarkim pirma užklausa bet kokiame requeste tavo TVS yra saito pavadinimas (nežinau, ar tai iš tikrųjų saugoma DB tavo TVS'e, nesigilinau). Jei saito pavadinimo nustatymo DB nėra, tai galbūt jis dar nebuvo įvestas, o gal net lentelės nesukurtos... Tokiu atveju gali nuspręsti, kad TVS negali veikti
visiškai, scriptą iškart killinti su kokiu nors error pranešimu ir net nevykdyti to, kad ir kas ten bebūtų toliau...
O tarkim koks nors kitas variantas nebus toks kritinis (klaida išmesta tik kokioj nors vienoje dalyje, kuri atskira nuo kitų ir kitoms vykti netrukdo). Tokiu atveju tiesiog nerodai tos dalies. Klaidą sau, žinoma, loggini.
Ir dar kartą: vartotojas tikrų klaidų pranešimų neturėtų matyti: kai kada tai gali net būti pavojinga. Išvedi jam "Atsiprašome, įvyko klaida.", o užsirašai, kas ten buvo, tik sau. Jei dar nori padaryti lengvesnį sprendimą ir sau, ir vartotojui, priskiri klaidai kokį unikalų ID, jį išvedi vartotojui kartu su pranešimu (ir sau užloggini klaidą irgi su tuo ID). Jis kreipiasi į tave, duoda tau ID ir tu atseki, kuri būtent klaida iš kelių buvo jo.
Čia to pavyzdys YouTube. Pastebėk, kad nesimėto koks nors "MySQL query failed connection lost omg omg" (aišku, ir PHP jie nenaudoja, turi proto...

). Tik šiuo atveju jau duodama užkoduota turbūt pilna klaidos informacija (ne vien ID).