Io scriverei così:
`
\makeatletter
\newcommand{\tbris}[2][tbp]{% l'argomento obbligatorio è l'etichetta
% check sull'etichetta vuota
\def\@tmp{#2}
\ifx\@tmp\empty
\GenericError{\space\space\space\@spaces\@spaces\@spaces}{%
Etichetta obbligatoria non specificata (argomento vuoto)}{%
La macro \string\tbris\space ha ricevuto un argomento vuoto}{%
La macro \string\tbris\space ha ricevuto un argomento vuoto}
\else
% check sull'etichetta composta da un solo spazio
\ifx\@tmp\space
\GenericError{\space\space\space\@spaces\@spaces\@spaces}{%
Etichetta obbligatoria non specificata (argomento con spazi)}{%
La macro \string\tbris\space ha ricevuto caratteri spazio}{%
La macro \string\tbris\space ha ricevuto caratteri spazio}
\else
\begin{table}[#1]
\caption{Risultati ottenuti}\label{#2}
\centering\footnotesize
\input{capitoli/tabelle/tabRisultato}
\end{table}
\fi\fi
}
\makeatother
`
Direi che così la macro non sia infallibile, ma protegga abbastanza dalle omissioni dell’etichetta. Non protegge dall’errore di specificare nelle due chiamate la stessa etichetta. Potrebbe essere migliorata in modo da evitare di eseguire un dei due test inutilmente, ma insomma ci si può accontentare.