JAVA高级--异常处理概念和异常处理机制
什么是异常
程序运行的过程中发生的一些不正常事件
异常分类
Throwable
Error 错误
Exception
IOException
RuntimeException 编程错误 可以不用采用异常处理
java的异常通过两种机制来处理
捕获 try-catch-finally
try 监控 catch 处理 finally 总是执行
package com.date; import java.util.InputMismatchException;
import java.util.Scanner; public class TryDemo {
public static void main(String[] args) {
System.out.println("请输入一个数字");
Scanner input=new Scanner(System.in);
int a=input.nextInt();
int res=0;
try {
res=10/a;
}catch (Exception e) {
System.out.println(e.getMessage());
}finally {//释放资源,比如关闭打开的文件
System.out.println("结果为:"+res);
}
/*} catch (InputMismatchException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}catch (ArithmeticException e) {
System.out.println();
}*/ }
}
抛出 throw,throws
throw 手动抛出异常(弹出)
throws 声明方法抛出异常
package com.date;
public class throwDemo {
public static void main(String[] args) {
Bar bar=new Bar();
try {
bar.enter(15);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
System.out.println("end");
}
}
class Bar{
public void enter(int age) throws IllegalArgumentException {
if(age<19) {
throw new IllegalArgumentException("年龄不合格");
}else {
System.out.println("欢迎");
}
}
}
自定义异常
必须从已有的异常类继承
Exception 必须用throws
package com.date;
public class zidingyiyichDemo {
public static void main(String[] args) {
Bar1 bar=new Bar1();
try {
bar.enter(18);
} catch (AgeLessThanEighteenException e) {
System.out.println(e.getMessage());
}
System.out.println("end");
}
}
class AgeLessThanEighteenException extends Exception{
private String message;//描述异常信息
public AgeLessThanEighteenException(String message) {
this.message = message;
}
@Override
public String getMessage() {
return message;
}
}
class Bar1{
public void enter(int age) throws AgeLessThanEighteenException {
if(age<19) {
throw new AgeLessThanEighteenException("年龄不合格");
}else {
System.out.println("欢迎");
}
}
}
JAVA高级--异常处理概念和异常处理机制的更多相关文章
- Java高级之虚拟机垃圾回收机制
博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved ! 区别于C语言手动回收,Java自动执行垃圾回收,但为了执行高效 ...
- Java高级之虚拟机加载机制
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 1.0版本:2016-05-21 SubClass!! 执行结果说明一个问题:子类调用父类变量的时候 ...
- Java web的几种异常处理 (转)
一.在servlet容器中处理异常 以下两种方式: 1. 在web.xml定义异常处理 如果没有在web的应用中作异常处理,那么异常就会抛给Servlet容器,应该说此时Servlet容器是处理异常 ...
- Java探索之旅(16)——异常处理
1.异常与异常处理 在<java编程思想>中这样定义 异常:阻止当前方法或作用域继续执行的问题.虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"的态度来 ...
- Java【第九篇】异常处理
异常概述 介绍 任何一种程序设计语言设计的程序在运行时都有可能出现错误,例如除数为0,数组下标越界,要读写的文件不存在等等.捕获错误最理想的是在编译期间,但有的错误只有在运行时才会发生.对于这些错误, ...
- 2017.10.28 针对Java Web应用中错误异常处理方法的运用
针对Java Web应用中错误异常处理方法的运用 在javaweb中其异常都需要对Checked Exception之下的Exception进行继承,并且有选择地对发生的错误和异常进行处理.Java同 ...
- java复习整理(六 异常处理)
一.异常简介 在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出).Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性. ...
- JAVA项目中常用的异常处理情况总结
JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...
- Java基础(八)异常处理
一.异常 异常是指程序在运行过程产生的不正常情况.语法错误不算异常. 1.异常体系 Throwable:Java语言中所有错误或异常的超类:Throwable 类的子类有两个:1.Error:2.Ex ...
随机推荐
- Java的一些小知识
Switch和If的区别: Switch case成功后将不再向下继续执行,而If却要每个条件判断一遍.过于浪费: Java中的多态: 方法重载: 通常是指在同一个类中,相同的方法名对应着不同的方法实 ...
- Python学习之高阶函数--嵌套函数、函数装饰器、含参函数装饰器
玩了一晚上王者,突然觉得该学习,然后大晚上的搞出来这道练习题,凌晨一点写博客(之所以这么晚就赶忙写是因为怕第二天看自己程序都忘了咋写的了),我太难了o(╥﹏╥)o 言归正传,练习题要求:构造类似京东的 ...
- HDFS 数据错误与恢复
- Simple implementation and results of genetic algorithm.
This experiment was done for the final assignment of my Professional English class. This part has be ...
- IDEA中配置国内maven库镜像(阿里云)
配置maven中settings.xml,在mirrors段内增加镜像配置,配置后如下: <mirror> <id>nexus-aliyun</id> <mi ...
- mac linux 创建文件 Permission denied
解决方法: $ sudo chmod -R 777 目录其中-R 是指级联应用到目录里的所有子目录和文件777 是所有用户都拥有最高权限
- c++设计模式:访问者模式(visitor模式)
1.c语言中回调基本都过函数指针来完成.c++中主要通过接口的方式完成回调.而visitor就是实现接口回调的一种方式. 1.首先定义个一个接口visitor类, class classVisitor ...
- Django项目:CRM(客户关系管理系统)--48--39PerfectCRM实现登录+验证码+过期时间+页面保留账号
# gbacc_urls.py # ————————38PerfectCRM实现全局账号登录注销———————— from django.conf.urls import url from gbacc ...
- LintCode 两两交换链表中的节点
给一个链表,两两交换其中的节点,然后返回交换后的链表. 样例 给出 1->2->3->4, 你应该返回的链表是 2->1->4->3. 分析:第一次调试的时候用了P ...
- mysql数据库外键、主键详解
一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生的学 ...