抛出异常时,不会执行catch块内的代码。我不确定异常是否被抛出我想的地方。有什么想法吗? 这是输出:
线程中的异常" AWT-EventQueue-0"显示java.lang.NullPointerException
package de.jeanma.stackOverflow;
import java.lang.Integer;
import java.lang.String;
public class Transactions{
private String date, time, category, value, tags, description;
private int payee, payer;
public Transactions(){
//Add everything here, needed for the constructor
}
public Transactions(String date, String time, String category, int payee, //I recommend creating an constructor that sets the values as well, beacause you
int payer, String value, String tags, String Description){ // might want to create the object and call the save() directly withoud calling every setter one by one
this.date = date;
this.time = time;
this.category = category;
this.value = value;
this.tags = tags;
this.description = description;
this.payee = payee;
this.payer = payer;
//Add everything here, needed for the constructor as well
}
//Here you can place all your other methods
public void save(){
if(!(isInitialized(date) && isInitialized(time) && isInitialized(category) && isInitialized(value) //here all values are checked if they are initialized.
&& isInitialized(tags) && isInitialized(description) && isInitialized(Integer.valueOf(payee)) //The primitive int's are made to complex Integer's because
&& isInitialized(Integer.valueOf(payer)))){ // the method isInitialized() expects an object
//here you could throw an exception or do something like: System.exit(-1);
}
}
private boolean isInitialized(Object Obj){ // this is the method that's checking if the value is initialized
if(Obj.equals(null)) return false;
else return true;
}
//Add all the setters here (I'm too lazy to do that now)
}
答案 0 :(得分:2)
NullPointerException
不是IOException
。
答案 1 :(得分:2)
同样更新你的代码,
try {
...
}
catch (IOException ex) {
...
}
catch (NullPointerException ex) {
showError("NullPointerException catch");
System.out.println("Inside NullPointerException-Catch Block");
}
finally{
....
}
答案 2 :(得分:1)
你的catch只会捕获IOException。如果要捕获所有异常,请使用
catch (Exception ex) {
showError("Picture not fully received");
System.out.println("Inside Catch Block");
}