Originariamente inviato da piero.mac
Beh! dissento...
Beh! Permettimi di dissentire dal tuo dissenso...

Premesso che su vincoo UNIQUE siamo d'accordo, qui invece non mi trovi d'accordo:
Se tenti di inserire un doppione in un campo UNIQUE questo rende un errore. Cosa da non fare MAI in un linguaggio di programmmazione. Provocare in modo conscio una segnalazione di errore e' un bug dello script.

L'errore va sempre evitato e/o prevenuto.
Considera linguaggi di programmazione come il java, o comunque fortemente orientati agli oggetti, una caratteristica quasi immancabile in questi linguaggi sono le eccezioni, un codice del tipo
codice:
try {
  oggetto.metodo();
  return 'ok';  
}
catch Exception e {
  return 'Fallito';
}
è perfettamente normale, anzi è consigliabile in molti casi, quindi che ci vedi di male nel gestire una situazione di errore come condizione di fallimento?

Per come la vedo io l'operatore @ può essere visto come l'equivalente del try di java, pertanto non vedo cosa c'è di così sbagliato nel codice che ho postato.

Questione di punti di vista.