number java异常,java异常

import java.util.Scanner;

public class Exc{

public static void main(String[] args){

Scanner input=new Scanner(System.in);

System.out.println("Enter two integers:");

int number1=input.nextInt();

int number2=input.nextInt();

//程序包含的是一个try块和catch块。try块包含的是正常情况下执行的代码。

//catch块包含的是number2为0时执行的代码。在这种情况下,程序会通过执行下面的语句来抛出一个异常。

try{

if(number2==0)

throw new ArithmeticException("D2ivisor cannot b zero");

System.out.println(number1+" / "+number2+" is "+(number1/number2));

}

//new ArithmeticException("D2ivisor cannot b zero");称为一个异常

//异常时从一个异常类创建的对象。在这种情况下,异常类就是java.lang.ArithmeticException

catch(ArithmeticException ex){

System.out.println("Exception:an integer cannot be divided by zero");

}

System.out.println("Execution continues...");

}

}

/**

当异常被抛出时,正常的流程就被中断。抛出异常就是将异常从一个地方传递到另一个地方。异常被catch块捕获。执行

catch块中的代码以处理这个异常。然后,执行catch块后的语句。

throw类似于方法的调用,不同于调用块,它调用的是catch块。从某种意义上讲,catch块就像是带参数的方法定义,这些参数

匹配抛出的值得类型。

*/

import java.util.Scanner;

public class Quotient {

public static int quotient(int number1,int number2){

if(number2==0)

throw new ArithmeticException("Divisor cannot be zero");

return number1/number2;

}

public static void main(String[] args){

Scanner input=new Scanner(System.in);

System.out.println("Enter two integers:");

int number1=input.nextInt();

int number2=input.nextInt();

try{

int result=quotient(number1,number2);

System.out.println(number1+" / "+number2+" is "+(number1/number2));

}

catch(ArithmeticException ex){

System.out.println("Exception:an integer cannot be divided by zero");

}

System.out.println("Execution continues...");

}

}

/**

异常的一个优点:它能使方法抛出一个异常给它的调用者。这个调用者可以处理该异常。异常最根本的优势试讲检测错误由调用的

方法完成,处理错误由调用方法完成中分离出来。

*/

Throwable类是所有异常类的根。所有的java异常类都直接或间接地继承自Throwable。

这些异常类可以分为三类:系统错误,异常和运行时异常。

1.系统错误,由java虚拟机抛出,用Erroe类表示,描述的是内部系统错误。这样的错误很少发生。如果发生,除了通知用户以及尽量稳妥的终止程序外,几乎什么也不能做。

2.异常,是由Exception类表示的,它描述的是由程序和外部环境所引起的错误,这些错误能够被程序捕获和处理。

3.运行时异常,是由RuntimeException类表示的,它描述的是程序设计错误。例如,错误的类型转换,访问一个越界数组或数值错误。由java虚拟机抛出。

Java的异常处理模型基于三种操作:声明一个异常,抛出一个异常,捕获一个异常。

1.声明异常。Java中,当前执行的语句必属于某个方法。Java解释器调用main方法开始执行一个程序。每个方法都必须声明它可能抛出的必检异常的类型。这称为声明异常。因为任何代码都可能发生系统错误和运行时错误。为了在方法中声明一个异常,就要在方法头中使用关键字throws。eg:

public void myMethod()throws IOException

关键字throws表示myMethod方法可能会抛出异常IOException。如果方法可能抛出多个异常,在throws后加一个用逗号分隔的异常列表。

2.抛出异常。检测一个错误的程序可以创建一个正确异常类型的实例并抛出它。这称为抛出一个异常。

IllegalArgumentException ex=new IllegalArgumentException(“Wrong Argument”);

throw ex;

等同于

throw newIllegalArgumentException(“Wrong Argument”);

3.捕获异常,如果在执行try块的过程中没有出现异常,则跳过catch字句。如果try块中的某条语句抛出一个异常,java会跳过try块中剩余的语句,然后开始查找处理这个异常代码的过程。处理这个异常的代码称为异常处理器。可以从当前的方法开始,沿着方法调用链,按照异常的反向传播方向找到哦这个处理器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值