secondo me ti conviene crearti 3 eccezioni, estendendo la classe Exception, e poi usare con il throw queste in modo da gestirle correttamente con il catch
per farti un esempio
Codice PHP:
for (..)
{
try
{
if (!istruzione1)
throw new MyFirstException ()
if (!istruzione2)
throw new MySecondException ()
if (!istruzione3)
throw new MyThirdException()
}
catch (MyFirstException $e)
{
$e->getMessage();
}
catch (MySecondException $e)
{
$e->getMessage();
}
catch (MyThirdException $e)
{
$e->getMessage();
}
}
quello che però ti consiglio e di evitare di farne un uso di questo tipo perché le eccezioni rallentano cosistentemente l'esecuzione del codice quindi conviene usarle per quello che serve ovvero una gestione centralizzata degli errori ovvero devono essere direttamente le funzioni/metodi a lanciare l'eccezione in modo da inserire informazioni utili e in modo da poter leggere lo stacktrace per analizzare lo "storico" della chiamata
di solito, quando uso le eccezioni, uso i try catch innestati, ovvero metto un try/catch contenente praticamente tutto il codice in modo da gestire eccezioni non correttamente dal resto del codice cosi gli errori li visualizzo per come dico io, dopo di che aggancio all'error handler una funzione per far lanciare le eccezioni, in modo che i notice ed i warning vengano gestiti dal sistema base ... ovviamente però il codice va ad effettuare dei controlli specifici ... nel senso che se per esempio mysql_connect lancia un warning io non lo faccio arrivare perché metto la chiocciola e gestisco l'errore che mi ha appena ritornato in autonomia nella classe stessa
in questo modo hai un dettaglio degli errori elevatissimo ed anche una gestione molto flessibile e centralizzata
Comunque io il codice lo vedrei più qualcosa tipo
Codice PHP:
for (..)
{
try
{
istruzione1
istruzione2
istruzione3
}
catch (MyFirstException $e)
{
$e->getMessage();
}
catch (MySecondException $e)
{
$e->getMessage();
}
catch (MyThirdException $e)
{
$e->getMessage();
}
}
dove istruzione1, istruzione2 ed istruzione3 sono specifici metodi/funzioni che eseguono N operazioni e lanciano le dovute eccezioni