throw到底是什么东东 throw是类还是方法或者其他的??????? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是一个关键字。表示抛出一个异常。 和new 有点类似 一个关键字,类似于return的作用,throw返回的是一个Throwable对象或Throwable派生类对象 throw意思是出现异常自己不处理,而扔给其他对象处理 throw这家伙根本不是个东东啊。 throw的作用表示显示的抛出异常 java 的异常处理所用的关键字 throw关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。通过throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法声明中指明要跑出的异常;如果要捕捉throw抛出的异常,则必须使用try—catch语句。举例如下:class MyException extends Exception { //创建自定义异常类 String message; //定义String类型变量 public MyException(String ErrorMessagr) { //父类方法 message = ErrorMessagr; } public String getMessage(){ //覆盖getMessage()方法 return message; }}public class Captor { //创建类static int quotient(int x,int y) throws MyException{//定义方法抛出异常if(y < 0){ //判断参数是否小于0 throw new MyException("除数不能是负数");//异常信息 } return x/y;//返回值 }public static void main(String args[]){ //主方法 try{ //try语句包含可能发生异常的语句 int result = quotient(3,-1);//调用方法quotient() }catch (MyException e) { //处理自定义异常 System.out.println(e.getMessage()); //输出异常信息 } catch (ArithmeticException e) { //处理ArithmeticException异常 System.out.println("除数不能为0");//输出提示信息 } catch (Exception e) { //处理其他异常 System.out.println("程序发生了其他的异常"); //输出提示信息 } }} 是一个关键字。表示抛出一个异常,如果程序出现了异常,就抛给别的地方处理或给JVM处理继续向后执行。如果没抛出异常就正常执行,和没有throw没有关系。 public class ThrowAndThrows { /** * 计算一个数字的平方根 * @param nStr 以字符串的形式提供数字 * @return 返回平方根 * @throws Exception 当用户输入的字符串为空, * 或者字符串无法转换成数字,或者转换成的数字小于0,都会抛出异常 */ public static double sqrt(String nStr) throws Exception { if (nStr == null) { //用trow关键字抛出异常,当异常被抛出时,程序会跳出该方法 throw new Exception("输入的字符不能为空!"); } double n = 0; try { n = Double.parseDouble(nStr); } catch(NumberFormatException e) { //将parseDouble方法可能抛出的异常NumberFormatException捕获, //然后将捕获的异常重新封装并输出 throw new Exception("输入的字符串必须能够转化成数字!", e); } if (n < 0 ){ throw new Exception("输入的字符串转化成的数字必须大于0!"); } return Math.sqrt(n); } public static void main(String[] args) throws Exception { try{ ThrowAndThrows.sqrt("-124.56"); } catch(Exception e) { //将sqrt方法声明的可能抛出的Exception异常捕获 //打印捕获的异常的堆栈信息,从堆栈信息中可以发现异常发生的位置和原因 System.out.println("Got a Exception:" + e.getMessage()); e.printStackTrace(); throw e; //不做进一步处理,将异常向外抛出 } //将sqrt声明了可能会抛出的异常向外抛出,必须在方法声明中使用throws ThrowAndThrows.sqrt("-124.56"); }}有个小例子哈 问下为什么throw抛出的对象,这个对象为什么能传递到catch(Exception e)这个里面 高分求解多线程问题! javaSE 对图片的监听。 installanywhere 生成好的应用程序用不了 继承覆盖吗? 用java写的需要认证的网站上提交信息 java?Bs:CS java/jsp中的编码问题。。。。。 打包成JAR文件后,servlet可以用相对目录写文件吗? jdk 的困惑 发现了一个BUG : ImageIO 静态上下文不能引用非静态方法 为什么呢 以前这样写就是可以的 java 网络编程
class MyException extends Exception { //创建自定义异常类
String message; //定义String类型变量
public MyException(String ErrorMessagr) { //父类方法
message = ErrorMessagr;
}
public String getMessage(){ //覆盖getMessage()方法
return message;
}
}
public class Captor { //创建类
static int quotient(int x,int y) throws MyException{//定义方法抛出异常
if(y < 0){ //判断参数是否小于0
throw new MyException("除数不能是负数");//异常信息
}
return x/y;//返回值
}
public static void main(String args[]){ //主方法
try{ //try语句包含可能发生异常的语句
int result = quotient(3,-1);//调用方法quotient()
}catch (MyException e) { //处理自定义异常
System.out.println(e.getMessage()); //输出异常信息
}
catch (ArithmeticException e) {
//处理ArithmeticException异常
System.out.println("除数不能为0");//输出提示信息
}
catch (Exception e) { //处理其他异常
System.out.println("程序发生了其他的异常");
//输出提示信息
}
}
}
如果没抛出异常就正常执行,和没有throw没有关系。
public class ThrowAndThrows {
/**
* 计算一个数字的平方根
* @param nStr 以字符串的形式提供数字
* @return 返回平方根
* @throws Exception 当用户输入的字符串为空,
* 或者字符串无法转换成数字,或者转换成的数字小于0,都会抛出异常
*/
public static double sqrt(String nStr) throws Exception {
if (nStr == null) {
//用trow关键字抛出异常,当异常被抛出时,程序会跳出该方法
throw new Exception("输入的字符不能为空!");
}
double n = 0;
try {
n = Double.parseDouble(nStr);
} catch(NumberFormatException e) {
//将parseDouble方法可能抛出的异常NumberFormatException捕获,
//然后将捕获的异常重新封装并输出
throw new Exception("输入的字符串必须能够转化成数字!", e);
}
if (n < 0 ){
throw new Exception("输入的字符串转化成的数字必须大于0!");
}
return Math.sqrt(n);
}
public static void main(String[] args) throws Exception {
try{
ThrowAndThrows.sqrt("-124.56");
} catch(Exception e) {
//将sqrt方法声明的可能抛出的Exception异常捕获
//打印捕获的异常的堆栈信息,从堆栈信息中可以发现异常发生的位置和原因
System.out.println("Got a Exception:" + e.getMessage());
e.printStackTrace();
throw e; //不做进一步处理,将异常向外抛出
}
//将sqrt声明了可能会抛出的异常向外抛出,必须在方法声明中使用throws
ThrowAndThrows.sqrt("-124.56");
}}
有个小例子哈