由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Java版 - 初学者try catch in constructor 问题
相关主题
问一个 java generic问题请教一个简单的问题
Question about displaying Chinese问个题
新手求助,急急急!!!abstract class 的简单例子
help "java.lang.NoSuchMethodError"java问题:如何match两个正规表达式
Re: 怎样不用main(String args[])输出"hello worlreturn null or empty list/set/...
问个exception的问题java string stream
土问一个简单问题对 spring 的 exception 处理方式真是不适应
Why String class is final?出个简单题,看你Java APi熟悉到什么程度
相关话题的讨论汇总
话题: newlength话题: rectangle话题: newwidth话题: string
进入Java版参与讨论
1 (共1页)
x****a
发帖数: 1229
1
作业,创建rectangle class, 要求 throw exceptions, 我的code如下:
public class rectangle extends Shape{
public Rectangle ()
{
this(Shape.DEFAULT_SIZE, Shape.DEFAULT_SIZE);
}

public Rectangle (double newLength, double newWidth)
{
this(Rectangle.RECTANGLE_NAME, newLength, newWidth);
}
protected Rectangle (String newName, double newLength, double newWidth)
{
super (newName);

try
{
this.setLength (newLength);
this.setWidth (newWidth);
}
catch (RectangleException re)
{
this.length = Shape.DEFAULT_SIZE;
this.width = Shape.DEFAULT_SIZE;
}
}
public void setLength (double newLength) throws RectangleException
{
if (newLength <=0.0)
throw new RectangleException("VALUE MUST BE POSITIVE.");
else
this.length = newLength;
}
我的rectangleException:
public class RectangleException extends Exception
{
private static final String DEFAULT_MESSAGE = "message goes here";
public RectangleException()
{
this(RectangleException.DEFAULT_MESSAGE);
}

public RectangleException (String message)
{
super(new String(message));
}
显示错误:
no exception of RectangleException can be thrown, an exception type must be
throwable
请问rectangleException 错在哪里呢?初学者,请勿见笑。谢谢
请问
m****r
发帖数: 6639
2
你的exception需要implemnt throwable
或者直接extend 一个其他的 exception

【在 x****a 的大作中提到】
: 作业,创建rectangle class, 要求 throw exceptions, 我的code如下:
: public class rectangle extends Shape{
: public Rectangle ()
: {
: this(Shape.DEFAULT_SIZE, Shape.DEFAULT_SIZE);
: }
:
: public Rectangle (double newLength, double newWidth)
: {
: this(Rectangle.RECTANGLE_NAME, newLength, newWidth);

x****a
发帖数: 1229
3
谢谢你的回复。
我的rectangle class extends Shape class
所以 rectangelException class也要extends ShapeException class, 而不是直接
extends Exception, 我的理解对吗?
m****r
发帖数: 6639
4
that's not required for your code to compile. but that is probably wat you
should do.

【在 x****a 的大作中提到】
: 谢谢你的回复。
: 我的rectangle class extends Shape class
: 所以 rectangelException class也要extends ShapeException class, 而不是直接
: extends Exception, 我的理解对吗?

l**b
发帖数: 457
5
他的已经extends Exception了吧?

【在 m****r 的大作中提到】
: 你的exception需要implemnt throwable
: 或者直接extend 一个其他的 exception

l**b
发帖数: 457
6
Exception本身就是implements了Throwable了的,你extends和implements达到的效果
都是一样的。
我试了你的code,没有你说的问题啊?
Shape.java:
public class Shape {

public static final double DEFAULT_SIZE = 1.0;

private String name;

public Shape(String name) {
this.name = name;
}
}
Rectangle.java:
public class Rectangle extends Shape {

public static final String RECTANGLE_NAME = "Rectangle";

private double length;
private double width;

public Rectangle ()
{
this(Shape.DEFAULT_SIZE, Shape.DEFAULT_SIZE);
}

public Rectangle (double newLength, double newWidth)
{
this(Rectangle.RECTANGLE_NAME, newLength, newWidth);
}
protected Rectangle (String newName, double newLength, double newWidth)
{
super (newName);

try
{
this.setLength(newLength);
this.setWidth(newWidth);
}
catch (RectangleException re)
{
this.length = Shape.DEFAULT_SIZE;
this.width = Shape.DEFAULT_SIZE;
}
}

public void setWidth(double newWidth) throws RectangleException {
if (newWidth <= 0.0) {
throw new RectangleException("VALUE MUST BE POSITIVE.");
} else {
this.width = newWidth;
}
}
public void setLength (double newLength) throws RectangleException {
if (newLength <=0.0)
throw new RectangleException("VALUE MUST BE POSITIVE.");
else
this.length = newLength;
}
}
RectangleException.java:
public class RectangleException extends Exception {
private static final long serialVersionUID = 1L;
private static final String DEFAULT_MESSAGE = "message goes here";
public RectangleException() {
this(RectangleException.DEFAULT_MESSAGE);
}

public RectangleException (String message) {
super(new String(message));
}
}

【在 x****a 的大作中提到】
: 谢谢你的回复。
: 我的rectangle class extends Shape class
: 所以 rectangelException class也要extends ShapeException class, 而不是直接
: extends Exception, 我的理解对吗?

1 (共1页)
进入Java版参与讨论
相关主题
出个简单题,看你Java APi熟悉到什么程度Re: 怎样不用main(String args[])输出"hello worl
How to scroll an JInternalFrame问个exception的问题
Re: print problem, GUI guru please come in土问一个简单问题
please help me to solve this question!Why String class is final?
问一个 java generic问题请教一个简单的问题
Question about displaying Chinese问个题
新手求助,急急急!!!abstract class 的简单例子
help "java.lang.NoSuchMethodError"java问题:如何match两个正规表达式
相关话题的讨论汇总
话题: newlength话题: rectangle话题: newwidth话题: string