3

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

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() 语句。答案是什么。请清除我的疑问。谢谢你

4

2 回答 2

2

从字面上看,问题要求throw。不申报和扔。

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

如果您想声明并抛出,那就是另一个答案所说的。当然,这是完全没有目的的废话。我会惩罚或解雇在实际工作中使用这种方法的人。

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

它也不起作用,在 RMI 上 :( 最糟糕的是,如果有人为你写了这个错误,那么需要多少天的调试时间(1000 美元......)才能再次发现它。

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

我的面试问题问的是实际的真实商业问题。它们可能极具挑战性。

我不寻找可以在语言习语中做愚蠢无意义的事情的白痴,我寻找可以在典型的业务应用程序中解决不容易的问题的人。

于 2013-08-01T03:18:41.353 回答
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!";
    }
};
于 2013-08-01T02:54:55.787 回答