java中throws和throw的区别和用法

1、throws关键字通常被应用在声明方法时,用来指定可能抛出的异常。多个异常可以使用逗号隔开。当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象。如下面例子所示:

public class Shoot {   //创建类

static void pop() throws NegativeArraySizeException {

//定义方法并抛出NegativeArraySizeException异常

int [] arr = new int[-3];//创建数组

}

public static void main(String[] args) {//主方法

try {

pop(); //调用pop()方法

} catch (NegativeArraySizeException e) {

System.out.println("pop()方法抛出的异常");//输出异常信息

}

}

}

2、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("程序发生了其他的异常");//输出提示信息

}

}

}

时间: 2024-10-14 01:59:41

java中throws和throw的区别和用法的相关文章

Java中throws和throw的区别讲解

当然,你需要明白异常在Java中式以一个对象来看待.并且所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,但是一般情况下Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行.直接进入正题哈:1.用户程序自定义的异常和应用程序特定的异常,必须借助于 throws 和 throw 语句来定义抛出异常. 1.1   throw是语句抛出一个异常.语法:throw (异常对象);         throw e; 1.2   throws是方法可能抛出

Java中throws与throw的区别

首先异常在Java中是一个对象.并且所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,但是一般情况下Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行.1.用户程序自定义的异常和应用程序特定的异常,必须借助于 throws 和 throw 语句来定义抛出异常. 1.1   throw是语句抛出一个异常.语法:throw (异常对象);         throw e; 1.2   throws是方法可能抛出异常的声明.(用在声明方法时,表示该

Java中this与super的区别以及用法

super()用法 super()函数在子类构造函数中调用父类的构造函数时使用,必须要在构造函数的第一行. 1 class Animal { 2 public Animal() { 3 System.out.println("我是一只动物"); 4 } 5 } 6 class Cat extends Animal { 7 public Cat() { 8 super();//必须放在这里 9 System.out.println("我是一只小猫"); 10 //su

day08(异常处理,创建异常,finally,throws和throw的区别)

异常处理, 异常的产生  运行时异常:程序运行中产生的异常:RuntimeException类.   编译时异常:程序在编译时产生的异常:除了RuntimeException类  其他都是编译时产生的异常.    处理异常两种方式 抛出异常:把异常抛给调用者区解决   throws 抛出异常 捕获异常:编程者自己处理try....catch...finally... 创建异常, 1.自己创建sun公司的异常类对象 public class ClassException { public stat

【翻译】JAVA中抽象类和接口的区别

不知道有没有人翻译过了,这篇是挺简单的,权当复习一遍内容吧. 很多常见的面试问题如"抽象类和接口有什么区别","你在什么时候用抽象类什么时候用接口".所以在这篇文章里面,我们会讨论一下这个话题. 在开始讨论它们的区别之前,我们先看看它们的介绍. Abstract class 抽象类 抽象类被用来抽象出子类的共同特征.它是不能被实例化的,它只能被子类继承作为超类使用.抽象类被用作它的子类下的层次结构创建模板(Abstract classes are used to c

java中error和exception的区别

转载 :https://blog.csdn.net/lifengguo_njupt/article/details/7990485 java中error和exception的区别 Error类和Exception类的父类都是throwable类,他们的区别是: Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等.对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止. Exception类表示程序可以处理的异常,可

java中String与StringBuilder的区别

本篇文章介绍了,java中String与StringBuilder的区别. 相信大家对 String 和 StringBuffer 的区别也已经很了解了,但是估计还是会有很多同志对这两个类的工作原理有些不清楚的地方,今天我在这里重新把这个概念给大家复习一下,顺便牵出 J2SE 5.0 里面带来的一个新的字符操作的类—— StringBuilder (先别忙着扔我砖头,我还算清醒,我这里说的不是 C #, Java 也有 StringBuilder 类).那么这个 StringBuilder 和

java中extends与implements的区别

学了java很久了,久不用之后给同学解决一个java问题的时候,就卡在这个标题上了. 下面是java中extends与implements的区别: 1. 在类的声明中,通过关键字extends来创建一个类的子类.一个类通过关键字implements声明自己使用一个或者多个接口. extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用 2.extends是继承父类,只要那个类不是声明为f

java中抽象类与接口的区别

转自: http://blog.csdn.net/tp7309/article/details/10452445 二者的区别快忘得差不多了,从别处看到这文章感觉写的不错,正好复习复习,也给大家分享一下. 抽象类 abstract class 包含抽象方法的类,叫抽象类.而抽象的概念就是抽象出共同属性:成员变量和方法.所以抽象类可以有private等多种权限的成员变量和非abstract的成员方法.当然抽象方法是一定要有的. 抽象类是用于单一继承的,不能实例化.而继承类一定要实现抽象方法,因为抽象