AspectJ: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m →Advice |
|||
Riga 31:
La differenza tra un join point di tipo execution e uno di tipo call è molto semplice: un join point di tipo call corrisponde alla chiamata di un metodo da parte di un altro metodo, mentre un join point di tipo execution corrisponde all'esecuzione del corpo del metodo. Normalmente un join poit di tipo call è pressoché equivalente a un join point di tipo execution; a volte però non è così. Prendiamo ad esempio il caso della classe contenente il metodo main: in java, per convenzione, ogni programma deve comprendere una classe che implementi un metodo che abbia la seguente firma: public static void main(String[] args). Tale metodo è il primo ad essere eseguito dalla java VM. Un join point definito come call (public static void main(String[] args)) non verrà mai raggiunto durante l'esecuzione di un programma java, a differenza del join point definito da execution (public static void main(String[] args)). Questo accade perché, anche se il metodo main verrà sicuramente eseguito, esso non viene mai chiamato da un altro metodo, in quanto sarà sempre il primo metodo ad essere eseguito.
Esistono inoltre molti altri modi per individuare dei join point nel flusso del programma
handler(IOException)
|