use*_*353 5 java exception-handling exception catch-block
public class try
{
public static void main(String[] args)
{
try
{
if(true)
throw new A();
if(true)
throw new B();
}
catch( A | B e)
{
e.doit();
}
}
}
class A extends Exception
{
public void doit() {}
}
class B extends Exception
{
public void doit() {}
}
Run Code Online (Sandbox Code Playgroud)
这不编译
18: error: cannot find symbol
e.doit();
^
symbol: method doit()
location: variable e of type Exception
Run Code Online (Sandbox Code Playgroud)
变量e似乎最终是类型Exception而不是实际类型 - 这似乎是合乎逻辑的,因为在编译类型时编译器不知道将抛出什么类型.但是,有没有办法,使这项工作未做A及B一些公共基类派生两者或实现一个共同的接口?
| 归档时间: |
|
| 查看次数: |
489 次 |
| 最近记录: |