我正在做一个小程序 我想要一个方法来在传递null参数时显示错误消息,而不进行其工作。 我想
public void doSomething (String) {
try
{
//other
} catch (Exception IllegalArgumentException){
JOptionPane.showMessageDialog(null,"Null argument passed");
}
}
但它不起作用。 有什么想法吗?
更新
看到偏离主题的旗帜,我试着更精确。我有一个方法,必须在数据库中写入它像参数一样传递。 当然,无意识的用户传递空字符串的“风险”显然我不希望我的数据库由空字符串写。 所以我想解决这个简单的问题。 这是我的代码
public void insertTeach(String teachName, int studentsNum) {
try {
String query1 = "INSERT INTO teaching (Name, StudentsNum)"
+ "VALUES ('" + teachName+ "','"
+ StudentsNum + "');";
PreparedStatement statement=con.prepareStatement(query1);
statement.executeUpdate();
JOptionPane.showMessageDialog(null,"Data successfully inserted");
}
catch (Exception ex){
System.out.println("Errore: "+ex);
JOptionPane.showMessageDialog(null,"Error in writing. Try Again.");
}
如果我在try主体中编写if状态,if语句将被完全忽略。
public void insertTeach(String teachName, int studentsNum) {
try {
if (param == null) {
JOptionPane.showMessageDialog(null, "Null argument passed");
return;
}
String query1 = "INSERT INTO teaching (Name, StudentsNum)"
+ "VALUES ('" + teachName+ "','"
+ StudentsNum + "');";
PreparedStatement statement=con.prepareStatement(query1);
statement.executeUpdate();
JOptionPane.showMessageDialog(null,"Data successfully inserted");
}
catch (Exception ex){
System.out.println("Errore: "+ex);
JOptionPane.showMessageDialog(null,"Error in writing. Try Again.");
}
我必须做什么?
答案 0 :(得分:0)
public void doSomething (String s) {
if (s == null) {
JOptionPane.showMessageDialog(null,"Null argument passed");
return;
}
// actual work
}
答案 1 :(得分:0)
我认为你想要做的事实上是抓住NullPointerException
而不是IllegalArgumentException
。这是因为当有人将IllegalArgumentException
作为参数传递时,不会抛出null
,因为null
不是非法参数。所以你的代码看起来应该像 -
public void doSomething (String) {
try
{
//other
} catch (NullPointerException e){
JOptionPane.showMessageDialog(null,"Null argument passed");
}
}
或更好
public void doSomething (String) {
if(String == null)//do error stuff
}