java的异常处理机制
书中有个例子,请看:
class MyStringException extends Exception
{
private int len;
MyStringException(char str[])
{len = str.length;
}
public String toString()
{
return("您的字符串长度为" + len + ",超出默认字符串长度");
}
}
class MyString
{
private char name[] = new char[10]; //定义字符数组
MyString(char i_name[]) throws MyStringException //构造函数
{
if(i_name.length > 4)
throw new MyStringException(i_name);
System.arraycopy(i_name,0,name,0,i_name.length);
}
public void showData()
{
...
}
}
______________________________________________________________________________________
请问这一句:
MyString(char i_name[]) throws MyStringException //构造函数
{
if(i_name.length > 4)
throw new MyStringException(i_name);
System.arraycopy(i_name,0,name,0,i_name.length);
}
既然是构造函数throws是什么意思?
throw new MyStringException(i_name); 这一句的throw又代表什么呢?
————————————————————————————————————————————————
throw的格式
返回数据类型 方法名称(自变量串行)throws 异常类
{
...
}
以上为什么都和这个格式不同呢!!
------解决方法--------------------------------------------------------
先去看看java的异常处理机制吧,这是最基础的概念了,推荐《Thinking in Java》
------解决方法--------------------------------------------------------
throws MyStringException 是表示这个方法【可能】会抛出这个异常,调用这个方法的类必须
catch或者也声明抛出这个异常(RuntimeException的子类异常可以不声明)
------解决方法--------------------------------------------------------