使方法能够在抛出异常时执行某些操作

时间:2013-09-04 23:09:57

标签: java

我正在做一个小程序 我想要一个方法来在传递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.");
}

我必须做什么?

2 个答案:

答案 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
}