在java中的单个语句中抛出用户定义的异常

时间:2013-08-01 02:51:56

标签: java exception

最近我参加了一次采访。技术访谈中提出的一个问题是“如何使用单个语句抛出用户定义的异常”。 我把代码编写为

class MyException extends Exception{
public MyExeption(String err){
super(err);
}
class sample{
public static void main(String a[]){
throw new MyException("Error");
}

但他说我使用了2个语句1用于throw语句而其他语句用于super()语句。 答案是什么。请清楚我的怀疑。谢谢

2 个答案:

答案 0 :(得分:2)

我确信采访者正在寻找您匿名延长Exception

throw new Exception("Error") {
    // Here is what makes the exception user-defined.
    // You do not need to override anything, but if you want, you can:
    public String getMessage() {
        return "Here is your user-defined exception!";
    }
};

答案 1 :(得分:2)

从字面上看,问题要求抛出。不要申报&抛出。

throw new MyUserDefinedException("It was declared elsewhere.");

如果你想申报&扔,这就是另一个答案所说的。当然这是完整的垃圾代码,没有任何意义。我会惩罚或解雇那些在实际工作中使用这种方法的人。

throw new IllegalArgumentException("BS interview question, take another job."){};

它也不起作用,超过RMI :(最糟糕的是,如果有一些twit曾经为你写过这个bug,那么需要多少天的调试($ 1000s ..)才能再次发现它。

他们可能正在测试您的Java理解,但似乎这些小丑实际上并不知道如何使用/如何使用Java本身。

我的面试问题询问实际的商业问题。他们可能非常具有挑战性。

我不会寻找能够在语言习语中做出愚蠢无意义事情的白痴,我会寻找能够在典型商业应用中解决不容易出问题的人。