java异常类的使用方法,哪位大神帮忙解答一下,谢谢。
l 题目
// MyException.java
class MyException extends Exception
{
String message;
MyException(String str) {
//【代码1】//把参数的引用传给message成员变量
}
public String getMessage() {
//【代码2】//返回message成员变量
}
}
abstract class A{
abstract int f(int x,int y) throws MyException;
}
class B extends A{
int f(int x,int y) throws MyException{
if(【代码3】)//判断x、y都不大于100
【代码4】//抛出一个新建的MyException对象,MyException对象中构造方法传入的参数内容为:乘数超过100
return x*y;
}
}
public class eClass{
public static void main (String args[]){
A a;
【代码5】//设计a对象的B类上转型对象
try
{
System.out.println(a.f(12,10));
【代码6】//使用f()方法时传入一个大于100的乘数
}
catch(MyException e)
{
【代码7】输出错误信息
}
}
}
非检查异常(unckecked exception):Error 和 RuntimeException 以及他们的子类。javac在编译时,不会提示和发现这样的异常,不要求在程序处理这些异常。所以如果愿意,我们可以编写代码处理(使用try…catch…finally)这样的异常,也可以不处理。对于这些异常,我们应该修正代码,而不是去通过异常处理器处理 。这样的异常发生的原因多半是代码写的有问题。如除0错误ArithmeticException,错误的强制类型转换错误ClassCastException,数组索引越界ArrayIndexOutOfBoundsException,使用了空对象NullPointerException等等。
检查异常(checked exception):除了Error 和 RuntimeException的其它异常。javac强制要求程序员为这样的异常做预备处理工作(使用try…catch…finally或者throws)。在方法中要么用try-catch语句捕获它并处理,要么用throws子句声明抛出它,否则编译不会通过。这样的异常一般是由程序的运行环境导致的。因为程序可能被运行在各种未知的环境下,而程序员无法干预用户如何使用他编写的程序,于是程序员就应该为这样的异常时刻准备着。如SQLException , IOException,ClassNotFoundException 等。
需要明确的是:检查和非检查是对于javac来说的,这样就很好理解和区分了。
编写电池类(Cell):具有品牌属性,可以续电
1234567891011121314151617181920public class Cell { private String brand; public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } Cell(String brand){ this.brand = brand; } public void relay() { System.out.println("正在续电......."); } }编写测试类(TestCell)
1234567891011import javax.swing.CellEditor; public class TestCell { public static void main(String[] args) { Cell cell = new Cell("大牌电池"); System.out.println("测试结果:"+cell.getBrand()); cell.relay(); } }