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

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

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

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

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

java异常处理机制(try-catch-finally)的更多相关文章

  1. JAVA 异常处理机制

    主要讲述几点: 一.异常的简介 二.异常处理流程 三.运行时异常和非运行时异常 四.throws和throw关键字 一.异常简介 异常处理是在程序运行之中出现的情况,例如除数为零.异常类(Except ...

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

    一.实验目的 掌握面向对象程序设计技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境 三.实验内容 1.Java异常处理机制涉及5个关键字:t ...

  3. java异常处理机制 (转载)

    java异常处理机制 本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C ...

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

    本文为原创博文,严禁转载,侵权必究! Java异常处理机制在日常开发中应用频繁,其最主要的不外乎几个关键字:try.catch.finally.throw.throws,以及各种各样的Exceptio ...

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

    文章来源:leaforbook - 如何正确使用Java异常处理机制作者:士别三日 第一节 异常处理概述 第二节 Java异常处理类 2.1 Throwable 2.1.1 Throwable有五种构 ...

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

    深入理解java异常处理机制 ; int c; for (int i = 2; i >= -2; i--) { c = b / i; System.out.println("i=&qu ...

  7. Java异常处理机制的秘密

    一.结论 这些结论你可能从未听说过,但其正确性是毋庸置疑的,不妨先看看: 1.catch中throw不一定能抛回到上一层,因为finally中的return会抑制这个throw 2.finally中t ...

  8. Java异常处理机制及两种异常的区别

    java异常处理机制主要依赖于try,catch,finally,throw,throws五个关键字.   try 关键字后紧跟一个花括号括起来的代码块,简称try块.同理:下面的也被称为相应的块. ...

  9. java异常处理机制详解

    java异常处理机制详解 程序很难做到完美,不免有各种各样的异常.比如程序本身有bug,比如程序打印时打印机没有纸了,比如内存不足.为了解决这些异常,我们需要知道异常发生的原因.对于一些常见的异常,我 ...

  10. Java异常处理机制 try-catch-finally 剖析

    Java拥有着强大的异常处理机制,最近初步学习了下,感觉内容还是挺多的,特此来将自己的理解写出来与大家分享. 一. 在Java代码code中,由于使用Myeclipse IDE,可以自动提醒用户哪里有 ...

随机推荐

  1. .NET中的repeater简介及分页效果

    Repeater控件是一个数据绑定容器控件,它能够生成各个项的列表,并可以使用模板定义网页上各个项的布局.当该页运行时,该控件为数据源中的每个项重复此布局.  配合模板使用repeater控件 若要使 ...

  2. 测试不同格式下depth buffer的精度

    这篇文章主要是参考MJP的“Attack of The Depth Buffer”,测试不同格式下depth buffer的精度. 测试的depth buffer包含两类: 一是非线性的depth b ...

  3. WeMall微信商城源码插件会员卡代码详情

    WeMall微信商城源码插件会员卡代码是用于商业推广的比较有效的方式,分享了部分比较重要的代码,供技术员学习参考 Index_index.html <html> <head> ...

  4. 关于JAVA中抽象类和接口的区别辨析

    今天主要整理一下新学习的有关于Java中抽象类和接口的相关知识和个人理解. 1 抽象类 用来描述事物的一般状态和行为,然后在其子类中去实现这些状态和行为.也就是说,抽象类中的方法,需要在子类中进行重写 ...

  5. 3555: [Ctsc2014]企鹅QQ

    3555: [Ctsc2014]企鹅QQ Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 696  Solved: 294[Submit][Status ...

  6. 基于SSH协议的端口转发

    [前言] 最近一直在使用ssh协议的端口转发(隧道)功能,完成对内网空透等.这篇文章将主要讲解3种常用的ssh tunnelling使用方法和基本原理. 在介绍具体内容前,我先奉上端口转发的常用情景: ...

  7. 【2017-03-16】TSQL基本编程、存储过程、触发器

    一.TSQL基本编程 1.定义变量 :declare @变量名 数据类型        变量名前面必须加"@"符号 declare @aaa int; declare @bbb n ...

  8. javascript解析机制、闭包详解

    js解析机制: js代码解析之前会创建一个如下的词法环境对象(仓库):LexicalEnvironment{ } 在扫描js代码时会把: 1.用声明的方式创建的函数的名字: 2.用var定义的变量的名 ...

  9. Bootsrap 的 Carousel

    一.简介 Carousel 就是指轮播图,这里 有完整的代码例子.它可以很简单的就构造出来,结构如下: div.carousel.slide[data-ride="carousel" ...

  10. Delphi的Hint介绍以及用其重写气泡提示以达到好看的效果

    Delphi中使用提示是如此简单,只需将欲使用Hint的控件作如下设置: ShowHint := True; Hint := ‘提示信息’; 不必写一行代码,相当方便. 但有时我们又想自己定制提示的效 ...