add exception
This commit is contained in:
parent
3cff34caff
commit
2c06ca0601
@ -1,6 +1,7 @@
|
||||
import java.util.Scanner;
|
||||
import java.io.PrintStream;
|
||||
import java.util.ArrayList;
|
||||
import java.io.IOException;
|
||||
|
||||
public class Azienda{
|
||||
|
||||
@ -20,14 +21,20 @@ public class Azienda{
|
||||
private Dipendente read(Scanner sc) throws Exception{
|
||||
String id;
|
||||
|
||||
if(!sc.hasNext()) return null;
|
||||
id=sc.next();
|
||||
if(id.equals("OP"))
|
||||
return Operaio.read(sc);
|
||||
else if(id.equals("DIR"))
|
||||
return Dirigente.read(sc);
|
||||
else
|
||||
try{
|
||||
if(!sc.hasNext()) return null;
|
||||
id=sc.next();
|
||||
if(id.equals("OP"))
|
||||
return Operaio.read(sc);
|
||||
else if(id.equals("DIR"))
|
||||
return Dirigente.read(sc);
|
||||
else
|
||||
throw new IOException("Classe non presente");
|
||||
}
|
||||
catch(IOException Exception){
|
||||
System.err.println("***"+Exception.getMessage()+"***");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void calcolaPrint(Scanner scPresenze, PrintStream ps) throws Exception{
|
||||
@ -37,9 +44,15 @@ public class Azienda{
|
||||
while(pres!=null){
|
||||
dip=ricercaDipendentePerCodice(pres.getCodiceFiscale());
|
||||
if(dip!=null){
|
||||
double paga=dip.calcoloPaga(pres.getOreLavoro());
|
||||
dip.print(ps);
|
||||
ps.println("paga mensile: "+paga);
|
||||
try{
|
||||
double paga=dip.calcoloPaga(pres.getOreLavoro());
|
||||
if(paga<=0) throw new IOException("Dipendente lavativo");
|
||||
dip.print(ps);
|
||||
ps.println("paga mensile: "+paga);
|
||||
}
|
||||
catch(IOException Exception){
|
||||
System.err.println("Il dipendente "+dip.getNome()+" "+dip.getCnome()+" non ha svolto il suo lavoro");
|
||||
}
|
||||
}
|
||||
pres=Presenze.read(scPresenze);
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
import java.io.PrintStream;
|
||||
import java.util.Scanner;
|
||||
import java.lang.RuntimeException;
|
||||
|
||||
public class Dirigente extends Dipendente{
|
||||
|
||||
@ -18,7 +19,7 @@ public class Dirigente extends Dipendente{
|
||||
|
||||
public static Dirigente read(Scanner sc) throws Exception{
|
||||
String nome, cnome, areaResponsabilità, codiceFiscale;
|
||||
double paga;
|
||||
double paga=0;
|
||||
if(!sc.hasNext()) return null;
|
||||
codiceFiscale=sc.next();
|
||||
if(!sc.hasNext()) return null;
|
||||
@ -28,7 +29,16 @@ public class Dirigente extends Dipendente{
|
||||
if(!sc.hasNext()) return null;
|
||||
areaResponsabilità=sc.next();
|
||||
if(!sc.hasNextDouble()) return null;
|
||||
paga=sc.nextDouble();
|
||||
try{
|
||||
paga=sc.nextDouble();
|
||||
if(paga<0) throw new RuntimeException("Paga minore di zero");
|
||||
}
|
||||
|
||||
catch(RuntimeException Exception){
|
||||
System.err.println("***"+Exception.getMessage()+"***");
|
||||
System.err.println("Paga di "+nome+" "+cnome+" impostata come valore assoluto");
|
||||
paga=-paga;
|
||||
}
|
||||
|
||||
return new Dirigente(codiceFiscale, nome, cnome, paga, areaResponsabilità);
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ public class Operaio extends Dipendente{
|
||||
|
||||
public static Operaio read(Scanner sc) throws Exception{
|
||||
String nome, cnome, livello, funzione, codiceFiscale;
|
||||
double paga;
|
||||
double paga=0;
|
||||
|
||||
if(!sc.hasNext()) return null;
|
||||
codiceFiscale=sc.next();
|
||||
@ -44,7 +44,16 @@ public class Operaio extends Dipendente{
|
||||
if(!sc.hasNext()) return null;
|
||||
livello=sc.next();
|
||||
if(!sc.hasNextDouble()) return null;
|
||||
paga=sc.nextDouble();
|
||||
try{
|
||||
paga=sc.nextDouble();
|
||||
if(paga<0) throw new RuntimeException("Paga minore di zero");
|
||||
}
|
||||
|
||||
catch(RuntimeException Exception){
|
||||
System.err.println("***"+Exception.getMessage()+"***");
|
||||
System.err.println("Paga di "+nome+" "+cnome+" impostata come valore assoluto");
|
||||
paga=-paga;
|
||||
}
|
||||
|
||||
return new Operaio(codiceFiscale, nome, cnome, paga, funzione, livello);
|
||||
}
|
||||
|
@ -2,9 +2,9 @@ OP GFYDFG67J15A789M Paperino Duck Operaio I 120
|
||||
OP GDRSFG67B12Y456Y Pippo Goofy Operaio I 120
|
||||
DIR HJKDTF34G11G134G Topolino Mouse R&D 600
|
||||
OP GFHHHH56U77U894G Pluto Pluto Operaio I 120
|
||||
DIR GSDHBG12H34H765F Eta Beta Approvvigionamento 1000
|
||||
DIR GSDHBG12H34H765F Eta Beta Approvvigionamento -1000
|
||||
OP MFGTYG12F44H897Y Qui Duck Operaio II 220
|
||||
OP MGRFGH16J0JU908M Quo Duck Operaio II 220
|
||||
OP GSDHBG12H34H765F Qua Duck Operaio II 220
|
||||
OPP GSDHBG12H34H765H Qua Duck Operaio II 220
|
||||
DIR XDDHBG12Y84H767J Paperino Fauntleroy Contabilità 330
|
||||
DIR GSDTGB12H31E764Y Goku Son Personale 1000
|
||||
|
@ -1,10 +1,10 @@
|
||||
GFYDFG67J15A789M 100
|
||||
GDRSFG67B12Y456Y 100
|
||||
HJKDTF34G11G134G 1000
|
||||
GDRSFG67B12Y456Y 0
|
||||
HJKDTF34G11G134G -1000
|
||||
GFHHHH56U77U894G 200
|
||||
GSDHBG12H34H765F 300
|
||||
MFGTYG12F44H897Y 400
|
||||
MGRFGH16J0JU908M 100
|
||||
GSDHBG12H34H765F 100
|
||||
GSDHBG12H34H765H 100
|
||||
XDDHBG12Y84H767J 100
|
||||
GSDTGB12H31E764Y 1000
|
Loading…
Reference in New Issue
Block a user