Java程序的输出 |第39集(throw关键字)
先决条件:异常处理,抛出
1. 以下程序的输出是什么?
class Geeks {
public
static void main(String[] args)
{
throw new ArithmeticException();
}
}
选项:
1. RuntineException: Java.lang.ArithmeticExcetion
2. RuntineException:/ 为零
3. RuntineException: Java.lang.ArithmeticExcetion:/ 为零
4. RuntineException:ArithmeticExcetion
The answer is option (1)
说明:在上面的程序中,我们显式地向JVM抛出了一个异常对象,默认处理程序打印了异常对象的描述,没有任何对象的描述,因为这里我们调用的是默认构造函数。
2. 以下程序的输出是什么?
class Geeks {
static ArithmeticException ae = new ArithmeticException();
public
static void main(String[] args)
{
throw ae;
}
}
选项:
1. RuntineException: Java.lang.ArithmeticExcetion
2. RuntineException:/ 为零
3. RuntineException: Java.lang.ArithmeticExcetion:/ 为零
4. RuntineException:ArithmeticExcetion
The answer is option (1)
说明:在上面的程序中,我们显式地向 JVM 抛出一个异常对象,默认处理程序打印异常对象的描述。
3. 下面程序的输出是什么?
class Geeks {
static ArithmeticException ae;
public
static void main(String[] args)
{
throw ae;
}
}
选项:
1. RuntineException: Java.lang.ArithmeticExcetion
2. RuntineException:NullPointerException
3. 无输出
4. RuntineException:ArithmeticExcetion
The answer is option (2)
说明:这里ae指的是null,因为静态变量是编译器通过给定默认值初始化的,引用的值为null。这就是为什么我们会在线程“main” Java.lang.NullPointerException 中得到 RuntimeException 说 Exception
4. 以下程序的输出是什么?
class Geeks {
public
static void main(String[] args)
{
throw new ArithmeticException("/ by zero");
System.out.println("Hello Geeks");
}
}
选项:
1. 运行时异常
2. 编译时错误
3. 无输出
4. 编译时异常
The answer is option (2)
说明:在上面的程序中,我们向JVM显式抛出了一个异常对象,但是在显式抛出一个异常对象之后,我们不能直接声明任何语句,因为该语句将没有机会执行。这就是为什么我们会得到编译时错误说 error: unreachable statement
5. 以下程序的输出是什么?
class Geeks {
public
static void main(String[] args)
{
throw new Geeks();
System.out.println("Hello Geeks");
}
}
选项:
1.你好极客
2. 无输出
3. 运行时异常
4. 编译时错误
The answer is option (4)
说明:我们只能对可抛出的对象类型使用 throw 关键字。如果我们尝试使用普通的Java对象,我们会得到编译时错误,提示类型不兼容。