Java处理异常2种机制关键字区别解析
这篇文章主要介绍了java处理异常2种机制关键字区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
在异常处理的过程中,throws和throw的区别是?
throws:是在方法上对一个方法进行声明,而不进行处理,而是向上传,谁调用谁处理.
throw:是在具体的抛出一个异常类型.
throws的栗子:
throws的话,就是这个方法有可能会产生异常,而我只是将它声明出去,我自己不处理,如果有人调用的时候,可以知道,这个方法,有可能会抛出异常,我要是调用的话,我就得处理,或者接着throws.
格式是:方法名(参数)throws 异常类1,异常类2,.....
class Math{ public int div(int i,int j) throws Exception{ int t=i/j; return t; } } public class ThrowsDemo { public static void main(String args[]) throws Exception{ Math m=new Math(); System.out.println("出发操作:"+m.div(10,2)); } }
throw:在一个有异常中的方法中,可以进行捕获,也可以进行throws
注意throws:一旦被执行,程序就会立即转入异常处理阶段,后面的语句就不再执行了,而且所在的方法不再返回有意义的值.
public class TestThrow { public static void main(String[] args) { try { //调用带throws声明的方法,必须显式捕获该异常 //否则,必须在main方法中再次声明抛出 throwChecked(-3); } catch (Exception e) { System.out.println(e.getMessage()); } //调用抛出Runtime异常的方法既可以显式捕获该异常, //也可不理会该异常 throwRuntime(3); } public static void throwChecked(int a)throws Exception { if (a > 0) { //自行抛出Exception异常 //该代码必须处于try块里,或处于带throws声明的方法中 throw new Exception("a的值大于0,不符合要求"); } } public static void throwRuntime(int a) { if (a > 0) { //自行抛出RuntimeException异常,既可以显式捕获该异常 //也可完全不理会该异常,把该异常交给该方法调用者处理 throw new RuntimeException("a的值大于0,不符合要求"); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
java的异常与处理机制分析【附面试题】
本文实例讲述了java的异常与处理机制.分享给大家供大家参考,具体如下: java的异常机制 Throwable类 Throwable类是Java异常类型的顶层父类,一个对象只有是 Throwable 类的(直接或者间接)实例,他才是一个异常对象,才能被异常处理机制识别.JDK中内建了一些常用的异常类,我们也可以自定义异常. Throwable又派生出Error类和Exception类. 错误:Error类以及他的子类的实例,代表了JVM本身的错误.错误不能被程序员通过代码处理,Error很少出
-
详解Java异常处理中throw与throws关键字的用法区别
抛出异常 抛出异常有三种形式,一是throw,一个throws,还有一种系统自动抛异常.下面它们之间的异同. 系统自动抛异常 当程序语句出现一些逻辑错误.主义错误或类型转换错误时,系统会自动抛出异常.如: public static void main(String[] args) { int a = 5, b =0; System.out.println(5/b); //function(); } 系统会自动抛出ArithmeticException异常: Exception in threa
-
Java异常处理的五个关键字
异常:异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的. 异常处理关键字:try.catch.finally.throw.throws 注意事项: 错误不是异常,而是脱离程序员控制的问题. 所有的异常类是从 java.lang.Exception 类继承的子类. 异常类有两个主要的子类:IOException 类和 RuntimeException 类. Java有很多的内置异常类. 异常大致分类: 用户输入了非法数据. 要打开的文件不存在. 网络通信时连接中断
-
Java异常处理 Throwable实现方法解析
Java Throwable类 步骤 1 : Throwable Throwable是类,Exception和Error都继承了该类 所以在捕捉的时候,也可以使用Throwable进行捕捉 如图: 异常分Error和Exception Exception里又分运行时异常和可查异常. package exception; import java.io.File; import java.io.FileInputStream; public class TestException { public
-
Java程序常见异常及处理汇总
一.JDK中常见的异常情况 1.常见异常总结图 2.java中异常分类 Throwable类有两个直接子类: (1)Exception:出现的问题是可以被捕获的 (2)Error:系统错误,通常由JVM处理 3.被捕获的异常分类 (1)Check异常: 派生自Exception的异常类,必须被捕获或再次声明抛出 (2)Runtime异常:派生自RuntimeException的异常类.使用throw语句可以随时抛出这种异常对象 throw new ArithmeticException(-);
-
Java异常处理与throws关键字用法分析
本文实例讲述了Java异常处理与throws关键字用法.分享给大家供大家参考,具体如下: Java异常处理 认识异常: 1.异常是导致程序中断运行的一种指令流,如果不对异常进行正确处理,则可能导致程序的中断执行,造成不必要的损失. 2.异常范例 空指针异常 Exc e=null; System.out.println(e.i); 除0异常 int a=10; int b=0; System.out.println(a/b); 3.处理异常 异常格式: try{ 异常语句: } catch(Exc
-
JAVA项目常用异常处理汇总
我们在进行JAVA项目开发时,经常会面对一些常见的异常处理情况,接下来我会根据课下查阅学习的资料,来进行一些总结. 1.空指针异常(java.lang.nullpointerexception) 发生该情况一般是字符串变量未初始化,数组未初始化,类对象未初始化等.还有一种情况是当该对象为空时你并没有判断是否为空值,这个错误我在之前的web习题上犯过,因此为了避免这种情况,除了检查是否初始化之外,如有必要则要加上判断是否为null的if语句. 2.指定的类不存在(java.lang.ClassNo
-
java处理异常的机制关键字throw和throws使用解析
在异常处理的过程中,throws和throw的区别是? throws:是在方法上对一个方法进行声明,而不进行处理,而是向上传,谁调用谁处理. throw:是在具体的抛出一个异常类型. throws的栗子: throws的话,就是这个方法有可能会产生异常,而我只是将它声明出去,我自己不处理,如果有人调用的时候,可以知道,这个方法,有可能会抛出异常,我要是调用的话,我就得处理,或者接着throws. 格式是:方法名(参数)throws 异常类1,异常类2,..... class Math{ publ
-
Java处理异常2种机制关键字区别解析
这篇文章主要介绍了java处理异常2种机制关键字区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在异常处理的过程中,throws和throw的区别是? throws:是在方法上对一个方法进行声明,而不进行处理,而是向上传,谁调用谁处理. throw:是在具体的抛出一个异常类型. throws的栗子: throws的话,就是这个方法有可能会产生异常,而我只是将它声明出去,我自己不处理,如果有人调用的时候,可以知道,这个方法,有可能会抛出异
-
Java中的3种输入方式实现解析
这篇文章主要介绍了Java中的3种输入方式实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.从键盘读取char类型数据 char ch = (char)System.in.read(); System.in 提供的 read() 方法每次只能读取一个字节的数据,所以用的频率比较低. 2.BufferedReader 实现从键盘读取String类型数据 使用BufferedReader 对象的 readLine() 方法必须处理 jav
-
Java if(boolean)和if(boolean=true)区别解析
这篇文章主要介绍了Java if(boolean)和if(boolean=true)区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 我们都知道if(){}条件的括号中放的是布尔值,但是现在有两种情况,都是放布尔值,但是最终的结果是不相同的 这种情况是没有结果输出的 package com.company; public class three { public static void main(String s[]) { boolean
-
mysql清空表数据的两种方式和区别解析
在MySQL中删除数据有两种方式: truncate(截短)属于粗暴型的清空 delete属于精细化的删除 删除操作 如果你需要清空表里的所有数据,下面两种均可: delete from tablename; truncate table tablename; 而如果你只是删除一部分数据,就只能使用delete: delete from tablename where case1 and case2; 区别 在精细化的删除部分数据时,只能使用delete. 而清空所有表数据时,两者均可,此时这两
-
Springboot全局异常捕获及try catch区别解析
今天在码代码的时候突然想到这个问题,觉得有点困惑.在网上也翻阅不少帖子其中有一个帖子给了我一个思路,其实也是解释了基础概念. 概念一:try catch 语句在try里面捕获到异常之后会进入catch子句内,执行catch内的代码. 概念二:springboot中的全局异常处理在捕获到异常之后,异常代码之后的语句是不会再运行了的 那么从我一开始思路理解开始,这个时候我觉得这2个的功能用处都是在代码出现异常情况的时候对其进行处理,且向调用者(或者就是用户)返回一个友好的提示,那这2个有啥区别呢,重
-
Java for循环几种写法整理
Java for循环几种写法整理 概要: J2SE 1.5提供了另一种形式的for循环.借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象.本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类,并解释和这一机制的一些常见问题. 在Java程序中,要"逐一处理"――或者说,"遍历"――某一个数组或Collection中的元素的时候,一般会使用一个for循环来实现(当然,用其它种类的循环也不是不可以,只是不知道是因为fo
-
Java Spring Dubbo三种SPI机制的区别
目录 前言 SPI 有什么用? JDK SPI Dubbo SPI Spring SPI 对比 前言 SPI 全称为 Service Provider Interface,是一种服务发现机制.SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类.这样可以在运行时,动态为接口替换实现类.正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能. 本文主要是特性 & 用法介绍,不涉及源码解析(源码都很简单,相信你一定一看就懂) SPI 有什
-
java 中newInstance()方法和new关键字的区别
java 中newInstance()方法和new关键字的区别 * 它们的区别在于创建对象的方式不一样,前者是使用类加载机制,后者是创建一个新类. * 那么为什么会有两种创建对象方式?这主要考虑到软件的可伸缩.可扩展和可重用等软件设计思想. * 我们使用关键字new创建一个类的时候,这个类可以没有被加载.但是使用newInstance()方法的时候, * 就必须保证:1.这个类已经加载:2.这个类已经连接了. * newInstance()实际上是把new这个方式分解为两步,即首先调用Class
-
java异常(Exception)处理机制详解
一. 异常的定义 在<Java编程思想>中这样定义 异常:阻止当前方法或作用域继续执行的问题.虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"的态度来看待异常.绝对一点说异常就是某种意义上的错误,就是问题,它可能会导致程序失败.之所以java要提出异常处理机制,就是要告诉开发人员,你的程序出现了不正常的情况,请注意. 记得当初学习java的时候,异常总是搞不太清楚,不知道这个异常是什么意思,为什么会有这个机制?但是随着知识的积累逐渐也对异常有一点感觉了.举一
随机推荐
- PHP正则删除HTML代码中宽高样式的方法
- js绘制圆形和矩形的方法
- 一个不错的优化系统的批处理
- Access字符串处理函数整理
- thinkPHP中配置的读取与C方法详解
- mysql 的 like 问题,超强毕杀记!!!
- 有关wxpython pyqt内存占用问题分析
- 生成静态页大全[ASP/PHP/ASPX]
- windows下C#定时管理器框架Task.MainForm详解
- mysql分区功能详解,以及实例分析
- js中单引号与双引号冲突问题解决方法
- 对frameset、frame、iframe的js操作示例代码
- 获取SQL Server2014的安装时间
- 使用JS在浏览器中判断当前网络连接状态的几种方法
- JavaScript实现点击单元格改变背景色的方法
- Tomcat中session的管理机制
- vsftp建立虚拟用户不同目录分配不同权限操作步骤详解
- Ubuntu LTS服务器部署Jenkins详细介绍
- Java Web使用Html5 FormData实现多文件上传功能
- jQuery form 表单验证插件(fieldValue)校验表单