分析下列Java程序,判断这个程序输出什么,并分析为什么输出这个结果class MyException extends Exception{ public String toString( ){ return "negative"; } } public class ExceptionDemo{ public static void mySqrt(int a) throws MyException { if( a<0 ) throw new MyException(); System.out.println(Math.sqrt(a)); } public static void main( String args[] ){ try{ mySqrt(25 );mySqrt(5-15); } catch( MyException e ){ System.out.println("Caught "+e); } } }
时间: 2024-02-25 12:59:34 浏览: 126
这个Java程序定义了一个自定义异常类 `MyException`,并在 `mySqrt` 方法中抛出该异常。如果方法参数小于0,则会抛出该异常。在 `main` 方法中,分别调用了 `mySqrt` 方法传入参数25和-10,第一个调用不会抛出异常,第二个调用会抛出异常。在try语句块中,当发生 MyException 异常时,会执行 catch 语句块中的代码,并打印出 "Caught negative"。
因此,这个程序的输出结果是:
```
5.0
Caught negative
```
第一个调用输出了 5.0,因为它的参数是 25,调用 `Math.sqrt(25)` 方法,得到 5.0。第二个调用因为参数是 -10,抛出了 `MyException` 异常,被 `catch` 语句块捕获,输出了 "Caught negative"。
相关问题
24、下面一段代码自定义了一个异常类并抛出,横线上应该填写什么内容? class MyException extends Exception { public SelectingException(){}; public SelectingException(_________){ ____________ } } public void myMethod(int param) throws MyException { if(param<0) { throw new MyException("MyException"); } } A、 String msg super(msg); B、 String msg base(msg); C、 String msg Exception(msg); D、 不填内容 不填内容
A、String msg super(msg)。
在这个代码段中,我们自定义了一个名为MyException的异常类,并在该类中定义了一个带有一个字符串参数的构造函数。在myMethod()方法中,如果参数小于0,则抛出MyException异常,并且在构造函数中传递一个错误消息。
由于MyException类继承自Exception类,我们需要在构造函数中调用父类的构造函数,并使用传递的错误消息来初始化异常对象。因此,正确的答案是A、String msg super(msg)。
class MyException extends Exception{ public MyException(String msg){ super(msg); } }
这是一个自定义异常类 `MyException`,它继承了 `Exception` 类。在构造方法中,我们调用了 `Exception` 的构造方法,并传入了一个 `String` 类型的参数 `msg`。这个参数表示异常的信息,即当我们抛出这个异常时,会将这个信息传递给异常处理器,用于提示用户或做其他处理。
阅读全文