Slide quinta lezione al linguaggio Java 8 in preparazione alla certificazione OCA 1Z0-808.
Argomenti:
Invocazione virtuale dei metodi
Eccezioni, gestione e creazione
Catturare e rilanciare eccezioni
NullPointer
Operazioni lambda, Predicate e principali operazioni
Stream
Lezione del 05-12-2017 tenuta da Valerio Radice presso Nextre Engeneering
https://www.nextre.it/corso/corso-java-oca/
In questa presentazione in power point tratterò i seguenti argomenti (tutti collegati al discorso dei flow chart):
- sequenza;
- alternativa;
- blocco in generale;
- blocco di selezione;
- blocco di iterazione.
Inoltre sono presenti tre esercitazioni che sono state eseguite in classe.
Una serie di slides per vedere come usare msfvenom per la creazione di un payload da eseguire su una macchina Windows 7 ed effettuare un Exploitation in uno "scenario ideale" di Phishing/Social Engineering.
Subito dopo l'exploitation tratteremo del Maintaining Access installando la backdoor e vedremo qualche funzionalità che offre la shell Meterpreter
Slide quinta lezione al linguaggio Java 8 in preparazione alla certificazione OCA 1Z0-808.
Argomenti:
Invocazione virtuale dei metodi
Eccezioni, gestione e creazione
Catturare e rilanciare eccezioni
NullPointer
Operazioni lambda, Predicate e principali operazioni
Stream
Lezione del 05-12-2017 tenuta da Valerio Radice presso Nextre Engeneering
https://www.nextre.it/corso/corso-java-oca/
In questa presentazione in power point tratterò i seguenti argomenti (tutti collegati al discorso dei flow chart):
- sequenza;
- alternativa;
- blocco in generale;
- blocco di selezione;
- blocco di iterazione.
Inoltre sono presenti tre esercitazioni che sono state eseguite in classe.
Una serie di slides per vedere come usare msfvenom per la creazione di un payload da eseguire su una macchina Windows 7 ed effettuare un Exploitation in uno "scenario ideale" di Phishing/Social Engineering.
Subito dopo l'exploitation tratteremo del Maintaining Access installando la backdoor e vedremo qualche funzionalità che offre la shell Meterpreter
Ready for the fame and fortune you deserve? Set yourself up for success and create a marketing plan to share your online portfolio. Gain new clients and grow your career as a creative professional
50 minuti per svelare la tigre, il cavallo e sapere che esiste il delfino.
La nuova versione di Java implementa caratteristiche che da tempo erano attese
nello standard del linguaggio: Metadata, Generic Types, AutoBoxing e
Unboxing dei tipi primitivi, Static import, gestione dinamica dei Loop e delle
Enumeration.
Per Java 6: gestione di SystemTray e motori di scripting.
Vediamo di cosa si tratta e di come poter utilizzare queste nuove feature all'interno dei nostri programmi
Ready for the fame and fortune you deserve? Set yourself up for success and create a marketing plan to share your online portfolio. Gain new clients and grow your career as a creative professional
50 minuti per svelare la tigre, il cavallo e sapere che esiste il delfino.
La nuova versione di Java implementa caratteristiche che da tempo erano attese
nello standard del linguaggio: Metadata, Generic Types, AutoBoxing e
Unboxing dei tipi primitivi, Static import, gestione dinamica dei Loop e delle
Enumeration.
Per Java 6: gestione di SystemTray e motori di scripting.
Vediamo di cosa si tratta e di come poter utilizzare queste nuove feature all'interno dei nostri programmi
1. 1
Gestione delle eccezioni
Java dispone di una gestione avanzata delle eccezioni, cioè degli errori di
runtime. Nei vari package esistono numerose eccezioni predefinite. Ma è
anche possibile definire delle eccezioni personalizzate.
Le eccezioni sono a tutti gli effetti delle classi e come tali appartengono ai
package; tutte le eccezioni derivano direttamente o indirettamente dalle
classi Exception e quindi dalla sua superclasse Throwable.
Come è insito nel concetto di ereditarietà, più si scende nella catena
gerarchica e più si avranno eccezioni specializzate. Di conseguenza
Exception è l’eccezione più generica di tutte: cioè le intercetta tutte.
2. try – catch - finally
La sintassi da utilizzare per la gestione delle eccezioni è la seguente:
try{
…. Codice che può generare errori di runtime (eccezioni)
}
catch(NullPointerException npe)
{ System.out.println(npe.getMessage()); //stampa msg errore
npe.printStackTrace(); //stampa il msg d’errore
//e la catena di eccezioni conseguenti
//con indicazione della riga
}
catch(ArrayIndexOutOfBoundException obe)
{
//si tratta di un’eccezione dello stesso livello della precedente
}
catch(Exception e) //essendo più generica va dopo
{
//intercetta tutte le eccezioni sfuggite alle precedenti
}
finally
{
//blocco eseguito sia in caso di eccezioni sia in caso di esecuzione normale
}
3. Lancio di un’eccezione
Le eccezioni vengono normalmente lanciate automaticamente durante
l’esecuzione dalla VM java. Tuttavia è possibile lanciare un’eccezione in modo
manuale. Ricordiamo infatti che le eccezioni sono delle classi e come tali possono
essere istanziate. Ad esempio la classe Exception ha un costruttore che accetta
come parametro il messaggio d’errore.
E’ possibile scrivere un codice di questo tipo:
public void preleva(int importo) throws Exception
{
if(saldo>=importo) saldo-=importo;
else throw new Exception(“Conto scoperto”);
}
Dopo aver scritto questo codice sarà obbligatorio chiamare il metodo preleva
all’interno di un try-catch:
try{
preleva(100);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
4. Uso di throws per i metodi
La parola chiave throws indica che un metodo lancia una certa eccezione, ma
come conseguenza fa si che la gestione di tale eccezione venga portata a livello
superiore, cioè nella porzione di codice in cui il metodo viene chiamato.
public BufferedReader apriFile(String nomeFile) throws IOException
{
FileReader fr=new FileReader(nomeFile);
BufferedReader out =new BufferedReader(fr);
return out;
}
Quando però chiamerò questo metodo devo ricordarmi di usare il try-catch, a
meno che non mi trovi in un altro metodo che lo rilancia ancora all’esterno.
try
{ BufferReader out=apriFile(“prova.txt”);
……………….
}
catch(IOException ioe)
{
System.out.println(ioe.getMessage());
}
5. Eccezioni Personalizzate
Tutte le classi Exception possono essere estese, quindi possiamo creare delle
nostre Eccezioni come sottoclassi di Exception o di una più specifica eccezione.
public class ContoScopertoException extends Exception
{
public ContoScopertoException()
{ super(“Conto Scoperto”);}
}
Dopo di che potremo modificare in questo modo il metodo preleva
public void preleva(int importo) throws ContoScopertoException
{
if(saldo>=importo) saldo-=importo;
else throw new ContoScopertoException();
}
6. Eccezioni Personalizzate
Tutte le classi Exception possono essere estese, quindi possiamo creare delle
nostre Eccezioni come sottoclassi di Exception o di una più specifica eccezione.
public class ContoScopertoException extends Exception
{
public ContoScopertoException()
{ super(“Conto Scoperto”);}
}
Dopo di che potremo modificare in questo modo il metodo preleva
public void preleva(int importo) throws ContoScopertoException
{
if(saldo>=importo) saldo-=importo;
else throw new ContoScopertoException();
}