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(Exception e){ } finally{ 一定会执行的代码; }
int a=10; int b=0; try { System.out.println(a/b); } catch (ArithmeticException e){ System.out.println(e); }
int temp=0; Exc e=null; try { temp=e.a/e.b; System.out.println(temp); } catch (NullPointerException e1){ System.out.println("空指针异常"+e1); } catch (ArithmeticException e1){ System.out.println("算数异常"+e1); } finally { System.out.println("程序退出"); }
常见异常
1.数组越界异常:ArrayIndexOutOfBoundsException
2.数字格式化异常:NumberFormatException
3.算数异常:ArithmeticException
4.空指针异常:NullPointerException
throws关键字
1.在定义一个方法的时候可以使用throws
关键字声明,使用throws
声明的方法表示此方法不处理异常,抛给方法的调用者处理。
2.格式:
public void tell()throws Exception{}
例子:
public static void main(String [] args){ try { tell(10,0); } catch (Exception e){ System.out.println(e); } } public static void tell(int i,int j)throws ArithmeticException{ int temp=0; temp=i/j; System.out.println(temp); }
还可以:
public static void main(String [] args)throws Exception{ tell(10,0); } public static void tell(int i,int j)throws ArithmeticException{ int temp=0; temp=i/j; System.out.println(temp); }
此时,最后抛给JVM进行处理。
更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
相关推荐
-
详解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的异常与处理机制分析【附面试题】
本文实例讲述了java的异常与处理机制.分享给大家供大家参考,具体如下: java的异常机制 Throwable类 Throwable类是Java异常类型的顶层父类,一个对象只有是 Throwable 类的(直接或者间接)实例,他才是一个异常对象,才能被异常处理机制识别.JDK中内建了一些常用的异常类,我们也可以自定义异常. Throwable又派生出Error类和Exception类. 错误:Error类以及他的子类的实例,代表了JVM本身的错误.错误不能被程序员通过代码处理,Error很少出
-
谈谈RxJava2中的异常及处理方法
前言 众所周知,RxJava2 中当链式调用中抛出异常时,如果没有对应的 Consumer 去处理异常,则这个异常会被抛出到虚拟机中去,Android 上的直接表现就是 crash,程序崩溃. 订阅方式 说异常处理前咱们先来看一下 RxJava2 中 Observable 订阅方法 subscribe() 我们常用的几种订阅方式: // 1 subscribe() // 2 Disposable subscribe(Consumer<? super T> onNext) // 3 Dispos
-
基于Java中throw和throws的区别(详解)
系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行. 语句抛出的异常 用户程序自定义的异常和应用程序特定的异常,必须借助于 throws 和 throw 语句来定义抛出异常. throw是语句抛出一个异常. 语法:throw (异常对象); throw e; throws是方法可能抛出异常的声明.(用在声明方法时,表示该方法可能要抛出异常) 语法:[(修饰符)](返回
-
详解Java编程中throw和throws子句的使用方法
Java throw:异常的抛出 程序可以用throw语句抛出明确的异常.Throw语句的通常形式如下: throw ThrowableInstance; 这里,ThrowableInstance一定是Throwable类类型或Throwable子类类型的一个对象.简单类型,例如int或char,以及非Throwable类,例如String或Object,不能用作异常.有两种可以获得Throwable对象的方法:在catch子句中使用参数或者用new操作符创建. 程序执行在throw语句之后立即
-
JAVA抛出异常的三种形式详解
一.系统自动抛出异常 当程序语句出现一些逻辑错误.主义错误或者类型转换错误时,系统会自动抛出异常 例一 public static void main(String[] args) { int a = 5; int b = 0; System.out.println( a / b); } 运行结果,系统会自动抛出ArithmeticException异常 Exception in thread "main" java.lang.ArithmeticException: / by zer
-
java处理异常的机制关键字throw和throws使用解析
在异常处理的过程中,throws和throw的区别是? throws:是在方法上对一个方法进行声明,而不进行处理,而是向上传,谁调用谁处理. throw:是在具体的抛出一个异常类型. throws的栗子: throws的话,就是这个方法有可能会产生异常,而我只是将它声明出去,我自己不处理,如果有人调用的时候,可以知道,这个方法,有可能会抛出异常,我要是调用的话,我就得处理,或者接着throws. 格式是:方法名(参数)throws 异常类1,异常类2,..... class Math{ publ
-
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中的final关键字用法实例详解
本文实例讲述了JAVA中的final关键字用法.分享给大家供大家参考,具体如下: 根据上下文环境,java的关键字final也存在着细微的区别,但通常指的是"这是无法改变的."不想改变的理由有两种:一种是效率,另一种是设计.由于两个原因相差很远,所以关键子final可能被误用. 接下来介绍一下使用到final的三中情况:数据,方法,类 final数据 许多编程语言都有某种方法,来向编译器告知一块数据是恒定不变的.有时数据的恒定不变是很有用的,例如: 1. 一个编译时恒定不变的常量 2.
-
java方法及this关键字原理分析详解
目录 步骤1 .给顾客增加一个吃饭的方法 步骤 2 . 没有加static的属性和方法,一定需要先new对象 步骤 3 . 用new出来的对象去执行eat方法 步骤 4 . 怎么理解c.eat() 步骤 5 . 消息接受器 步骤 6 . 如果有两个顾客? 步骤 7 . 答案 步骤 8 .其实有个this 步骤 9 . 在eat方法里面直接使用this 步骤 10 . 构造方法 步骤 11 . 总结:this的意义是什么? 步骤 12 . 道理我都懂,那static又是什么? 步骤 13 . 本节
-
java自定义异常以及throw和throws关键字用法
java中内置了很多可能在编程时出现的大部分异常.除此之外,用户可以使用一个类继承Exception类即可继承自定义类异常. 在程序中自定义类,大体上分为以下几个步骤: 1.创建自定义异常类 2.在方法中通过throw关键字抛出异常对象. 3.如果在当前抛出异常的方法中处理异常,可以使用try-catch语句块捕捉并处理异常,否则在方法的声明处通过throws指明要抛出给方法调用者的异常,继续进行下一步操作. 4.再出现异常的方法的调用者中捕获处理异常. 下面是我创建自定义异常.在项目中创建类M
-
java中transient关键字用法分析
本文实例分析了java中transient关键字用法.分享给大家供大家参考.具体分析如下: java有个特点就是序列化,简单地来说就是可以将这个类存储在物理空间(当然还是以文件的形式存在),那么当你从本地还原这个文件时,你可以将它转换为它本身.这可以极大地方便网络上的一些操作,但同时,因为涉及到安全问题,所以并不希望把类里面所有的东西都能存储(因为那样,别人可以通过序列化知道类里面的内容),那么我们就可以用上transient这个关键字,它的意思是临时的,即不会随类一起序列化到本地,所以当还原后
-
C#中var关键字用法分析
本文实例分析了C#中var关键字用法.分享给大家供大家参考.具体方法如下: C#关键字是伴随着.NET 3.5以后,伴随着匿名函数.LINQ而来, 由编译器帮我们推断具体的类型.总体来说,当一个变量是局部变量(不包括类级别的变量),并且在声明的时候初始化,是使用var关键字的前提.具体什么时候使用,什么时候不使用,以下是个人浅见. 1.声明匿名函数时使用var关键字 复制代码 代码如下: var temp = new {Name="", Category=""};
-
Java线程调度之线程休眠用法分析
本文实例分析了Java线程调度之线程休眠用法.分享给大家供大家参考.具体分析如下: Java线程调度是Java多线程的核心,只有良好的调度,才能充分发挥系统的性能,提高程序的执行效率. 这里要明确的一点,不管程序员怎么编写调度,只能最大限度的影响线程执行的次序,而不能做到精准控制. 线程休眠的目的是使线程让出CPU的最简单的做法之一,线程休眠时候,会将CPU资源交给其他线程,以便能轮换执行,当休眠一定时间后,线程会苏醒,进入准备状态等待执行. 线程休眠的方法是Thread.sleep
-
PHP面向对象程序设计中的self、static、parent关键字用法分析
本文实例讲述了PHP面向对象程序设计中的self.static.parent关键字用法.分享给大家供大家参考,具体如下: 看到php里面有关于后期静态绑定的内容,虽然没有完全看懂,但是也收获不少东西. php官方手册介绍: http://php.net/manual/zh/language.oop5.late-static-bindings.php 不存在继承的时候 不存在继承的意思就是,就书写一个单独的类来使用的时候.self和static在范围解析操作符 (::) 的使用上,并无区别. 在静
-
Java 的抽象类原理与用法分析
本文实例讲述了Java 的抽象类原理与用法.分享给大家供大家参考,具体如下: Java 的抽象类 用abstract关键字来修饰一个类时,这个类叫做抽象类: 用abstract来修饰一个方法时,该方法叫做抽象方法. 抽象方法:只有方法的声明,没有方法的实现.以分号结束:abstract int abstractMethod(int a ); 含有抽象方法的类必须被声明为抽象类. 抽象类不能被实例化.抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体.若没有重写全部的抽象方法,
-
php中this关键字用法分析
本文实例讲述了php中this关键字用法.分享给大家供大家参考,具体如下: 下面定义了一个Cart类 <?php class Cart { var $items; // 购物车中的项目 // 把 $num 个 $artnr 放入车中 function add_item ($artnr, $num) { $this->items[$artnr] += $num; } // 把 $num 个 $artnr 从车中取出 function remove_item ($artnr, $num) { if
随机推荐
- 浅谈Angular路由复用策略
- 破除网页鼠标右键被禁用的绝招大全
- Hibernate延迟加载技术详解
- PHP内核学习教程之php opcode内核实现
- asp服务器如何搭建
- Javascript Object 对象学习笔记
- Android编程之简单启动画面实现方法
- 使用存储过程实现循环插入100条记录
- XML入门的常见问题(三)
- javascript检测对象中是否存在某个属性判断方法小结
- jquery 获取json数据实现代码
- 浅析函数声明和函数表达式——函数声明的声明提前
- php面向对象全攻略 (十六) 对象的串行化
- c++类构造函数详解
- fiddler使用方法之Fiddler显示IP,Fiddler中文乱码解决方法以及fiddler模拟发送get/post请求
- PHP CURL中传递cookie的方法步骤
- SpringBoot继承LogStash实现日志收集的方法示例
- 深入理解Django自定义信号(signals)
- python3+selenium自动化测试框架详解
- nginx+redis实现session共享