java异常处理机制示例(java抛出异常、捕获、断言)
发布时间:2022-11-16 21:26:13
这是一个介绍基本异常处理的小例子,包括抛出,捕获,断言,日志。
Java异常处理通过5个关键字try、catch、throw、throws、finally进行管理。基本过程是用try语句块包住要监视的语句,如果在try语句块内出现异常,则异常会被抛出,你的代码在catch语句块中可以捕获到这个异常并做处理;还有以部分系统生成的异常在Java运行时自动抛出。你也可以通过throws关键字在方法上声明该方法要抛出异常,然后在方法内部通过throw抛出异常对象。
package com.hongyuan.test;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class ExceptionHandleTest {
static{
//开启断言,此后由系统类加载器加载的类将启用断言。
ClassLoader.getSystemClassLoader().setDefaultAssertionStatus(true);
}
public static void main(String[] args) {
/*
* 抛出,捕获
*/
try {
TryCatchTest.run(10, -1);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("====================================================");
//日志
LogerTest.run();
System.out.println("====================================================");
//断言
AssertTest.div(3,0);
}
}
/*
* 断言
*/
class AssertTest {
public static double div(int b,int a){
assert a!=0:"你这么用,你小学老师知道吗?";
return (double)b/a;
}
}
/*
* 日志
*/
class LogerTest {
private static Logger logger=null;
static{
//获取日志对象并定义日志级别
logger=Logger.getLogger(LogerTest.class.getName());
logger.setLevel(Level.ALL);
}
public static void run(){
//进入方法
logger.entering(LogerTest.class.getName(), "run");
//普通信息
logger.info("又来找我麻烦,这笔账我记下了!!!");
//警告
logger.warning("太累了,这活没法干了!!!");
//严重
logger.log(Level.SEVERE,"老子不干了!!! ^O^");
//退出方法
logger.exiting(LogerTest.class.getName(), "run");
}
}
/*
* 捕获,抛出
*/
class TryCatchTest {
public static void run(int x,int y) throws IOException {
try{//必须
if(x<0||y<0){
throw new IllegalArgumentException("无语了,这让我怎么办啊!!!");
}
}catch(Exception e){//可选
IOException e1=new IOException("你自己看着办吧!");
e1.initCause(e.getCause());
throw e1;
}finally{//可选
System.out.println("最后他们过上了幸福的生活!!!!(完)");
}
}
}
猜你喜欢
- SpringBoot实践,开发社区登录模块今日份开启 发送邮件三个步骤:1、邮箱设置首先需要注册一个新浪邮箱 18215626061@sin
- 一,背景之所以会想到一个服务同时使用eureka和nacos,是因为遇到一个需求,配置数据是存储在nacos的配置中,然后使用该配置的服务却
- 简单几步,实现SpringMVC+servlet3.0文件上传功能:第一步:配置web.xml文件中的servlet,添加multipart
- tokentoken的意思是“令牌”,是用户身份的验证方式,最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳
- 一、需求分析:1、输入一个数组-----------------------------------------》程序要接收一组输入的数组,
- Condition的作用是对锁进行更精确的控制。Condition中的await()方法相当于Object的wait()方法,Conditi
- 如下所示://view重绘时回调view.getViewTreeObserver().addOnDrawListener(new OnDra
- IDEA maven没有dependenciesIDEA导入新项目没有dependencies跟plugins如图:解决办法网上方法很多,重
- Spring AOP底层原理代理模式一、什么是 AOPAOP 就是面向切面编程,是 OOP(面向对象编程)的延续。利用 AOP 可以对业务逻
- 1.application.yml中添加两个datasourceserver: port: 8080spring: application:
- 本文实例为大家分享了Java实现简单酒店管理系统的具体代码,供大家参考,具体内容如下为某个酒店编写程序:酒店管理系统,模拟订房、退房和打印所
- 本文内容介绍通过Java程序在Excel表格中根据数据来创建透视表。环境准备需要使用Excel类库工具—Free Spire.XLS for
- 本文实例为大家分享了java生成字母验证码的具体代码,供大家参考,具体内容如下import java.awt.BasicStroke;imp
- 最近学习Spring,一直不太明白Srping的切面编程中的的argNames的含义,经过学习研究后,终于明白,分享一下需要监控的类:pac
- 前言前面介绍了APP顶部导航栏AppBar,今天来介绍下Flutter实现APP底部导航栏。我们以仿写微信的底部导航栏来举例说明。要实现类似
- 一、几句话使用Gradle及其推荐的项目框架把密码等敏感数据放入gradle.properties不要自己写Http客户端,使用Volley
- 本文实例总结了Java JDBC连接数据库常见操作。分享给大家供大家参考,具体如下:db.properties配置文件(MySql数据库)#
- 四种隔离机制不要忘记:(1,2,4,8)1.read-uncommitted:能够去读那些没有提交的数据(允许脏读的存在)2.read-co
- 一、简介   Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布
- Android中有两种主要方式使用Service,通过调用Context的startService方法或调用Context的bindServ