ここでの問題は何ですか?コンストラクターのifステートメント、コード全体に応じて、カスタム例外をキャッチしようとしているだけです。
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package question3_test;
/**
*
* @author jackandjill
*/
public class Triangle2
{
private int side1, side2, side3;
private double area;
private String message;
public int getSide1()
{
return side1;
}
public void setSide1(int s1)
{
side1 = s1;
}
public int getSide2()
{
return side2;
}
public void setSide2(int s2)
{
side2 = s2;
}
public int getSide3()
{
return side3;
}
public void setSide3(int s3)
{
side3 = s3;
}
public Triangle2(int a,int b,int c) throws InvalidValueException
{
setSide1(a);
setSide2(b);
setSide3(c);
try
{
if (!(side1 + side2 > side3) && (side2 + side3 > side1)&& (side1 + side3 > side2))
throw new InvalidValueException("Invalid Value");
}
catch (InvalidValueException excep)
{
message = excep.getMessage();
//throw new InvalidValueException(message);
}
public double findArea(int side_1, int side_2, int side_3)
{
int s, a, b,c;
a = side_1;
b = side_2;
c = side_3;
s = ((a + b + c)/2);
area = Math.sqrt(s*(s-a)*(s-b)*(s-c));
//area =
return area;
}
}
}
問題は私のcatchステートメントにあり、赤で下線が引かれ、対応するtryステートメントでスローされないことを示しています