java异常处理机制

/*
* 异常处理机制
* 1.分类:Error和Exception
* Error错误是JVM自动报错的,程序员无法解决例如开数组过大int a[]=new int [1024*1024*1024];
* Exception错误时程序员要解决的问题,例如指针越界,零做除数
* 2.异常处理
* try{
* 需要检测是否发生异常的代码
* }
* catch(Exception e){
* 处理异常的代码(一般是打印错误信息)
* }
* finally{
* 必须要运行的代码(一般是关闭数据库等释放资源的操作)
* }
* */

 1 public class test {
 2     public static void main(String[] args) {
 3         int a=10,b=0,c=0;
 4         try{
 5             c=div(a,b);//有可能出错的代码,放在try中进行检测
 6         }catch(Exception e){
 7             //自己定义的输出内容
 8             System.out.println("除数是0啦!");
 9             //得到错误信息
10             System.out.println(e.getMessage());
11             //异常名称和异常信息
12             System.out.println(e.toString());
13             //异常名称+异常信息+异常位置(JVM默认的异常处理机制)
14             e.printStackTrace();
15         }finally{
16             System.out.println("程序有错请检查");
17         }
18
19         System.out.println("经过运算c="+c);
20     }
21     //在有可能出现抛异常的函数名后面需要加上throws Exception来声明可能会抛出异常,提高程序的安全性
22     //调用该方法的地方必须要try-catch语句,否则编译错误
23     public static int div (int a,int b)throws Exception{
24         return a/b;
25     }
26 }

/*
* try和finally内的代码块是肯定会执行的
* catch中的代码块只有抛出异常时才会执行(如果有多个catch,只会执行一个,而且抛出的异常也只有一个)
*
*
* 当然平时我们会用到一些自定义的异常,下面我们介绍一下自定义异常的内容
*
* 自定义异常必须要继承Exception类,否者无法抛出异常*/

 1 public class test {
 2     public static void main(String[] args) {
 3         int a=10,b=-9,c=0;
 4         try{
 5             c=div(a,b);//有可能出错的代码,放在try中进行检测
 6         }catch(fushuException e){
 7             //自己定义的输出内容
 8             System.out.println("除数是负数啦!");
 9             //调用tostring方法,和getValue方法,来打印相应的报错语句
10             System.out.println(e.toString()+"负数的值是:"+e.getValue());
11         }finally{
12             System.out.println("程序有错请检查");
13         }
14
15         System.out.println("经过运算c="+c);
16     }
17     //在有可能出现抛异常的函数名后面需要加上throws Exception来声明可能会抛出异常,提高程序的安全性
18     //调用该方法的地方必须要try-catch语句,否则编译错误
19     public static int div (int a,int b)throws fushuException{
20         if(b<0){
21             //因为是个人写的异常类,所以要自己将异常类创建,并抛出
22             throw new fushuException("输入的除数是负数---/by 负数", b);
23         }
24         return a/b;
25     }
26 }
27 /*
28  * 定义一个负数异常类,一旦出现除数是负数,就会抛出异常
29  * */
30 class fushuException extends Exception{
31     private int value;
32     public fushuException(String msg,int value) {
33         //在Exception这个父类中有赋值函数和输出函数,所以只需要调用父类的构造函数
34         super(msg);
35         this.value=value;
36     }
37     public int getValue(){
38         return value;
39     }
40
41 }

/*
* throws和throw的区别
* 1.位置不同
* throws放在函数名后面
* throw放在函数里面
* 2.后面跟的内容不同
* throws后面跟一个或多个异常类名,用逗号隔开
* throw后面跟一场对象
* */

时间: 2024-10-21 20:13:55

java异常处理机制的相关文章

Java异常处理机制的秘密

一.结论 这些结论你可能从未听说过,但其正确性是毋庸置疑的,不妨先看看: 1.catch中throw不一定能抛回到上一层,因为finally中的return会抑制这个throw2.finally中throw一定能抛回上一层,因为此时其后的return不会被执行到(throw中断了正常的顺序流)3.在try/catch中return并不会直接返回上一层,而是先执行finally再返回 二.一段小程序 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Java异常处理机制 —— 深入理解与开发应用

本文为原创博文,严禁转载,侵权必究! Java异常处理机制在日常开发中应用频繁,其最主要的不外乎几个关键字:try.catch.finally.throw.throws,以及各种各样的Exception.本篇文章主要在基础的使用方法上,进一步分析在开发中如何使用异常机制更合理. try-catch-finally try-catch-finally块的用法比较简单,使用频次也最高.try块中包含可能出现异常的语句(当然这是人为决定的,try理论上可以包含任何代码),catch块负责捕获可能出现的

Java 异常处理机制和集合框架

课程  Java面向对象程序设计   实验名称  异常处理机制.集合框架 班级    13级计三          学号  10503                姓名 一.实验目的 掌握面向对象程序设计技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境 三.实验内容 1.Java异常处理机制涉及5个关键字:try.catch.finally.throw.throws,请理解每个关键字的作用,并在编写程序,使用运用这5个关键字,观察效果

Java异常处理机制就是程序代码执行过程

我也是通过各种方式在进行验证是否可以满足我们的需求,今天我就发现了一个问题.现在我们来一起说明一下,这个可能不算是bug,而应该需要我们记住就可以了. 对于一副灰度图像I,她的每一个像素点I(x,y)都有一个灰度值,一般情况下可能的灰度取值有2^8=256个(0,1,...,255).如果我们统计出灰度值r在I中出现的次数n,并对其进行归一化(n/N,N是所有灰度值出现次数的总和),这样我们就可以得到像素r在I中出现的概率p(r).如果对每一个可能的灰度取值r都做同样的处理,我们可以得到如图1左

Java异常处理机制很有意思

前言:在网络上看到一篇<深入理解Java异常处理机制>,看完感觉自己也有一点小想法,的确在很多Java学者的眼里,异常处理机制不就是try catch finally吗,有啥好理解,很多时候,我也经常忽略这方面的内容,感觉没什么有意思的,那么我们来扎个小马步吧 1.经过对原作者的例子改造 package mwq; public class T1 { public static void main(String[] args) { boolean b = true; try { b = tb1(

【转】深入理解java异常处理机制

深入理解java异常处理机制 1. 引子 try-catch-finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的"教训"告诉我,这个东西可不是想象中的那么简单.听话.不信?那你看看下面的代码,"猜猜"它执行后的结果会是什么?不要往后看答案.也不许执行代码看真正答案哦.如果你的答案是正确,那么这篇文章你就不用浪费时间看啦. <span style="background-color: rg

如何正确使用Java异常处理机制

第一节 异常处理概述 第二节 Java异常处理类 2.1 Throwable 2.1.1 Throwable有五种构造方法 2.1.2 Throwable的所有成员方法 2.2 Error 2.3 Exception 2.4 RuntimeException 2.5 Checked Exception 2.6 Uncheck Exception 2.7 总结 第三节 Java异常处理执行流程探究 3.1 流程一 3.2 流程二 3.3 流程三 3.4 流程四 3.5 流程五 3.6 流程六 3.

java异常处理机制详解

java异常处理机制详解 程序很难做到完美,不免有各种各样的异常.比如程序本身有bug,比如程序打印时打印机没有纸了,比如内存不足.为了解决这些异常,我们需要知道异常发生的原因.对于一些常见的异常,我们还可以提供一定的应对预案.C语言中的异常处理是简单的通过函数返回值来实现的,但返回值代表的含义往往是由惯例决定的.程序员需要查询大量的资料,才可能找到一个模糊的原因.面向对象语言,比如C++, Java, Python往往有更加复杂的异常处理机制.这里讨论Java中的异常处理机制. 异常处理 Ja

Java异常处理机制:try...catch...的执行流程

Java异常处理机制:try...catch...的执行流程 在项目中遇到try...catch...语句,因为对Java异常处理机制的流程不是很清楚,导致对相关逻辑代码不理解.所以现在来总结Java异常处理机制的处理流程: 1.异常处理的机制如下: 在方法中用 try... catch... 语句捕获并处理异常,catch 语句可以有多个,用来匹配多个不同类型的异常. 对于处理不了的异常或者要转型的异常,在方法的声明处通过 throws 声明异常,通过throw语句拋出异常,即由上层的调用方法

深入理解Java异常处理机制

1. 引子 try-catch-finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的"教训"告诉我,这个东西可不是想象中的那么简单.听话.不信?那你看看下面的代码,"猜猜"它执行后的结果会是什么?不要往后看答案.也不许执行代码看真正答案哦.如果你的答案是正确,那么这篇文章你就不用浪费时间看啦. <span style="background-color: rgb(255, 255, 255