JAVA笔记9__异常/throw关键字

/**
 * 异常:在程序中导致程序中断运行的一些指令
 * 1.受检异常:编译期
 * 2.非受检异常:运行期
 * 异常处理过程分析:
 * 1.一旦产生异常,系统会自动产生一个异常类的实例化对象
 * 2.此时如果存在对应try语句,则执行,否则程序将退出,并由系统报告错误
 *
 */
public class Main {
    public static void main(String[] args) {
        /*
        try{
            //有可能发生异常的代码段
        }catch(异常类型对象){
            //异常的处理操作
        }catch(异常类型对象){
            //异常的处理操作
        }...
        finally{
            //异常的统一出口
        }
        */
        int a = 100;
        Scanner input = new Scanner(System.in);
        try{
            for(int i=0;i<10;++i){
                int b = input.nextInt();
                int c = a / b;
                System.out.println(c);
            }
        }catch(ArithmeticException e){
            System.out.println("算术运算异常");
            e.printStackTrace(); //输出栈中的异常信息
        }catch(Exception e){
            System.out.println("运算异常");
        }finally{ //用途:资源的释放
            System.out.println("finally:不管try中的语句是否出现异常都会执行");
        }

        div(10,2);
    }

    public static int div(int a,int b){
        int res=0;
        try{
            res=a/b;
            return res; //执行完finally里的东西才执行这句
        }catch(ArithmeticException e){
            e.printStackTrace();
            return 0;
        }finally{
            System.out.println("除法运算结束");
        }
    }
}
public class Main {
    public static int add() throws InputMismatchException{ //抛出,让上级去处理
        Scanner input = new Scanner(System.in);
        try{
            int a = input.nextInt();
            int b = input.nextInt();
            return a+b;
        }catch(InputMismatchException e){
            //throw new InputMismatchException("There is a mistake.");
            throw e;
        }finally{
            System.out.println("All finished.");
        }
    }
    public static void main(String[] args) {
        try{
            System.out.println(add());
        }catch(InputMismatchException e){ //上级来处理
            e.printStackTrace();
        }
    }
}
时间: 2024-10-12 16:42:24

JAVA笔记9__异常/throw关键字的相关文章

Java中处理异常throw和throws

1.首先我们来了解什么是异常呢? 异常阻止当前方法或作用域继续执行的问题. 2.处理异常 说到处理异常,我们当然会想到 try catch finally 在java中我们会对异常的处理有更高的认识 我们会学习 throw throws等更好的处理异常 3.throw关键字:语句抛出异常   throws关键字:声明异常(方法抛出一个异常) 01.throw   是语句抛出一个异常. 语法:throw (异常对象);         throw e; 02. throws  是方法可能抛出异常的

JAVA笔记:异常的基本概念

异常是指导致程序中断的一种指令流. 一旦产生异常之后,异常后面的语句不会执行,还是停留在异常位置,并且把异常报告给用户. 基本格式: try{ //要执行的语句 } catch(){ //抛出异常 } finally{ //异常的唯一出口 } 例如: public class ExceptionTest { public static void main(String args[]){ int i = 10; int j =0; try { int temp = i/j; System.out.

java中抛出throw关键字是怎么用的? 举例?

5.抛出throw关键字   (视频下载) (全部书籍) 马克-to-win:我们先说5/0的原理,当程序运行到5/0的时候,java系统JVM会在后台new出一个除0异常实例,之后把这个实例传入catch块儿供开发者使用.马克-to-win:而这里throw new Exception();是开发者自己主动new出一个异常实例,之后把这个实例传入catch块儿供开发者自己使用.马克-to-win:对于catch来讲,不管谁抛的,处理起来都一样. (新手必须忽略)意义是什么?见后面的sun的例子

Java笔记:异常

Exception 类的层次 所有的异常类是从 java.lang.Exception 类继承的子类. Exception 类是 Throwable 类的子类.除了Exception类外,Throwable还有一个子类Error . Java 程序通常不捕获错误.错误一般发生在严重故障时,它们在Java程序处理的范畴之外. Error 用来指示运行时环境发生的错误. 例如,JVM 内存溢出.一般地,程序不会从错误中恢复. 异常类有两个主要的子类:IOException 类和 RuntimeExc

Java学习(异常类)

一.什么是异常: 异常就是在运行时产生的问题.通常用Exception描述. 在java中,把异常封装成了一个类,当出现问题时,就会创建异常类对象并抛出异常相关的信息(如详细信息,名称以及异常所处的位置). 二.异常的继承关系: Throwable类是所有错误跟异常类的超类(祖宗类). Exception异常类及其子类都是继承自Throwable类,用来表示java中可能出现的异常,并且合理的处理这些异常. RuntimeException类是运行异常类,继承自Exception类,它以及它的子

Java -- 异常的捕获及处理 -- throws与throw关键字

7.2 throws 与 throw关键字 7.2.1 throws 关键字 在定义一个方法时可以使用throws关键字声明,使用throws声明的方法标识此方法不处理异常,而交给方法的调用处进行处理. 例:使用throws关键字 例:处理异常 提示: 在主方法中也可以使用throws关键字,但主方法为程序的起点,所以此时主方法再向上抛异常,则只能将异常抛给JVM进行处理.主方法为一切的起点,如果在主方法中使用throws,则程序出现问题后肯定交由JVM进行处理,将导致程序中断,不建议在主方法上

java笔记--异常详解与处理

一.异常概念 Throwable类是Java中所有错误或异常的超类. 1.只有当对象是此类(或其子类)的实例时,才能通过Java虚拟机或着Java throw语句抛出.     2.只有此类或其子类才可以是catch字句中的参数类型.     3.有两个直接子类:Error和Exception         Error--指应用程序不应该去处理捕获的一种严重问题,常表示系统级的错误,如内存溢出        Exception--指程序需要捕获,需要处理的异常,是一种设计或实现方面的问题.  

Java基础_学习笔记_14_异常

1 class Test 2 { 3 public int devide(int x,int y) 4 { 5 int result=x/y; 6 return result; 7 } 8 } 9 class TestException 10 { 11 public static void main(String [] args) 12 { 13 Test t=new Test(); 14 t.devide(2,0); 15 System.out.println("the program is

Java基础笔记(2) 程序入口 关键字 标识符 常量 变量

提醒:关于那些和我一样新鸟来看资料的,能看懂多少看多少,看不懂的就是不重要,重要的你想我自己学习肯定要标注的,这些信息明白每个知识点实际作用就好了,其他的比如等会讲的常量内存,常量池这些都是我找的资料,有的自己都还不是太清楚,只是为了明白有这回事,没有那个新手教程一上来就讲这些,我拿低工资的怎么能去给搞研究的操心! 程序的编译与执行: 1.程序入口,在每一种编编程中,都会有一个main作为程序入口,JAVA的main写法如下: public static void main(String){}