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