最近我参加了一次采访。技术访谈中提出的一个问题是“如何使用单个语句抛出用户定义的异常”。 我把代码编写为
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()语句。 答案是什么。请清楚我的怀疑。谢谢
答案 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本身。
我的面试问题询问实际的商业问题。他们可能非常具有挑战性。
我不会寻找能够在语言习语中做出愚蠢无意义事情的白痴,我会寻找能够在典型商业应用中解决不容易出问题的人。