java异常处理机制(try-catch-finally)
/*
* 异常处理机制
* 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)的更多相关文章
- JAVA 异常处理机制
主要讲述几点: 一.异常的简介 二.异常处理流程 三.运行时异常和非运行时异常 四.throws和throw关键字 一.异常简介 异常处理是在程序运行之中出现的情况,例如除数为零.异常类(Except ...
- Java 异常处理机制和集合框架
一.实验目的 掌握面向对象程序设计技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境 三.实验内容 1.Java异常处理机制涉及5个关键字:t ...
- java异常处理机制 (转载)
java异常处理机制 本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C ...
- Java异常处理机制 —— 深入理解与开发应用
本文为原创博文,严禁转载,侵权必究! Java异常处理机制在日常开发中应用频繁,其最主要的不外乎几个关键字:try.catch.finally.throw.throws,以及各种各样的Exceptio ...
- 如何正确使用Java异常处理机制
文章来源:leaforbook - 如何正确使用Java异常处理机制作者:士别三日 第一节 异常处理概述 第二节 Java异常处理类 2.1 Throwable 2.1.1 Throwable有五种构 ...
- 【转】深入理解java异常处理机制
深入理解java异常处理机制 ; int c; for (int i = 2; i >= -2; i--) { c = b / i; System.out.println("i=&qu ...
- Java异常处理机制的秘密
一.结论 这些结论你可能从未听说过,但其正确性是毋庸置疑的,不妨先看看: 1.catch中throw不一定能抛回到上一层,因为finally中的return会抑制这个throw 2.finally中t ...
- Java异常处理机制及两种异常的区别
java异常处理机制主要依赖于try,catch,finally,throw,throws五个关键字. try 关键字后紧跟一个花括号括起来的代码块,简称try块.同理:下面的也被称为相应的块. ...
- java异常处理机制详解
java异常处理机制详解 程序很难做到完美,不免有各种各样的异常.比如程序本身有bug,比如程序打印时打印机没有纸了,比如内存不足.为了解决这些异常,我们需要知道异常发生的原因.对于一些常见的异常,我 ...
- Java异常处理机制 try-catch-finally 剖析
Java拥有着强大的异常处理机制,最近初步学习了下,感觉内容还是挺多的,特此来将自己的理解写出来与大家分享. 一. 在Java代码code中,由于使用Myeclipse IDE,可以自动提醒用户哪里有 ...
随机推荐
- KoaHub.js可借助 Babel 编译稳定运行在 Node.js 环境上
koahubjs KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架.可以直接在项目里使用 ES6/7(Generator Function, Class, A ...
- 3299: [USACO2011 Open]Corn Maze玉米迷宫
3299: [USACO2011 Open]Corn Maze玉米迷宫 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 137 Solved: 59[ ...
- Android中的WebView实战详解(一)
一.为什么要用WebView? 1.兼容已有的项目2.可动态更新 二.WebView怎样使用? WebView是一个控件,如在布局中设置: <WebView android:id="@ ...
- tomcat文件夹没有部署项目和Tomcat中webapps中没有运行项目-上传下载文件和图片
1.eclipse不像MyEclipse默认将项目部署到tomcat安装目录下的webapps中,而默认部署到工作目录下的.metadata.plugins\org.eclipse.wst.serve ...
- volatile关键字和synchronized关键字
volatile关键字: 可以用来修饰字段(成员变量),就是告知程序任何对该变量的访问均需要从共享内存中获取,而对它的改变必须同步刷新回共享内存,它能保证所有线程对变量访问的可见性. synchron ...
- ELK5.0安装教程
ELK升级后,安装稍微发生了点变化,在Elasticsearch中增加了很多资源上的限制,其他的倒是没什么变化.不过所有的安装都是基于JDK已经安装完的情况,且为1.8版本. 安装Elasticsea ...
- ubuntu16.10下安装erlang和RabbitMQ
Ubuntu系统下安装RabbitMQ(我选择的是Ubuntu Server 16.10) 1.首先必须要有Erlang环境支持 --安装之前要装一些必要的库(Erlang开发环境同样)(参考:duq ...
- Omi框架Store体系的前世今生
原文链接-https://github.com/AlloyTeam/omi Store 体系 先说说Store系统是干什么的!为什么要造这样一个东西?能够系统架构带来什么? 当我们组件之间,拥有共享的 ...
- React-Native 开发(二) 在react-native 中 运用 redux
前提: 一个小web前端,完全不会android 跟iOS 的开发,首次接触,有很多不懂的问题.请见谅. 环境: win7 上一篇 : React-Native 开发(一) Android环境部署,H ...
- css远距离链接
远距离链接主要运用了hover伪类,但是运用了两次 <!DOCTYPE html> <html lang="en"> <head> <me ...