侯体宗的博客
  • 首页
  • Hyperf2.1版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

java异常的处理探讨

Java  /  管理员 发布于 2年前   110

//java异常 

/*

1,了解java 中的异常处理机制,有三种操作

a,声明异常 

b,抛出异常 

c,捕获异常

2,学会使用try-catch-finally来处理异常

3,学会如何声明异常和抛出异常

4,学会创建自己的异常

 

*/

 

//2,学会使用try-catch-finally来处理异常

 

/*使用try-catch*/public class TryCatchTest { public static void main(String[] args) {int number,value;try{number = 0;value = 3/number;//可能会抛出ArithmeticException异常,使用catch老捕获这个异常}catch(ArithmeticException e){e.printStackTrace();System.out.println("错误:被0整除");}}} 
 
/*定义一个try-catch-finally来捕获异常*/public class finallyTest { public static void main(String[] args) { try{int[] a = new int[3];a[3] =3;//数组超越边界  }catch(ArithmeticException e){//Exception类是从Throwable继承的,同时也有其方法//toString();对当前异常对象的描述//getMessage();获取返回的信息//printStackTrace();打印当前异常对象详细消息的字符串 System.out.println(" e.toString()"+ e.toString()); System.out.println("e.getMessage()"+ e.getMessage()); System.out.println ("e.hashCode()"+e.hashCode()); System.out.println ("e.printStackTrace()");e.printStackTrace(); System.out.println("发生了异常!"); }finally{ //不管前面是否执行finally都会输出 System.out.println("最后执行这句话!"); }}}
 

 

 

 

//3,学会如何声明异常和抛出异常

 

/*会用关键字throw是在try中来声明,关键字throws是在方法体中声明

如果一个方法可能产生异常,那么该方法要么需要try-catch来捕获

并处理他们,要么主动声明抛出,否则该程序将无法编译,除非是编译

过成中的异常

throws关键字用在方法声明中

 

throw用在try块中来声明并抛出一个异常public void go(){try{thorw new IOException("文件不存在!");}catch(Exception e){System.out.println(e.getMessage());}}
 

 


 

import java.io.*; public class throwsTest { public static void main(String[] args){ throwsTest thorwstest = new throwsTest(); try{thorwstest.readFile();}catch(IOException e){e.printStackTrace();}}  //readFile() 方法抛出IOExceptionpublic void readFile() throws IOException{ FileInputStream fis = new FileInputStream("hello.txt");int b;b = fis.read();while(b!=-1){System.out.println((char)b);b = fis.read();}fis.close();}}*/ /*运行结果,如果没有hello.txt就出现下面的 ,如果有就输入字符 * java.io.FileNotFoundException: hello.txt (系统找不到指定的文件。)at java.io.FileInputStream.open(Native Method)at java.io.FileInputStream.<init>(Unknown Source)at java.io.FileInputStream.<init>(Unknown Source)at java面向对象设计.throwsTest.readFile(throwsTest.java:33)at java面向对象设计.throwsTest.main(throwsTest.java:23)  */ 
 

 

 

//4,学会创建自己的异常

//下面的代码中定义了声明了一个异常,并捕获, public class TryCatchTest { public static void main(String[] args) {int number,value;try{number = 0;value = 3/number; }catch(Exception e){e.printStackTrace();System.out.println("错误:被0整除");}} }  
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


  • 上一条:
    JAVA的抽象--- 接口 --实现
    下一条:
    java的多态性探讨
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • TP(3/5)
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • java 正则表达式基础,实例学习资料收集大全 原创(0个评论)
    • java正则表达式彻底研究(0个评论)
    • java正则表达式验证函数(0个评论)
    • MVC、MVP和MVVM分别是什么(0个评论)
    • java 单例模式(饿汉模式与懒汉模式)(0个评论)
    • 近期文章
    • mysql性能优化之8种常见SQL错误用法(0个评论)
    • Laravel 9.13版本发布(0个评论)
    • beego+GeoLite2免费数据库获取ip地址经纬度等定位归属信息(0个评论)
    • redis安全配置之修改端口、添加密码流程步骤及启动使用(0个评论)
    • PHP + Memcache实现简单的统计当前在线人数功能(0个评论)
    • Thinkphp5.1框架中实现Session+Redis会话共享流程步骤(0个评论)
    • go语言中使用Signbit()函数判断一个整数是正数或负数(0个评论)
    • 删库跑路之一链家程序员删除公司9TB数据被判7年,望各大码农警之!(0个评论)
    • Laravel角色和权限:拦截器Gates和策略Policies的解释(0个评论)
    • Laravel 9.12版本发布(0个评论)
    • 近期评论
    • 阿凡达123 在

      golang 怎么做热更新中评论 也可以看看这个:https://github.com/edwingeng/hot..
    • 博主 在

      hyperf框架常用命令-在centos7中退出命令及在docker容器中退出命令中评论 @路过的靓仔:cdn静态资源被墙,已修复..
    • GGGGGGGGG 在

      layui框架常用输入框介绍中评论 写的很好解决问题..
    • 路过的靓仔 在

      hyperf框架常用命令-在centos7中退出命令及在docker容器中退出命令中评论 剩下好多 wait 状态的..
    • 激光豆芽 在

      为什么你不能安逸?国内996为什么没有国外955香?中评论 国内现在无意义的内卷太多了..
    • 2016-11
    • 2018-03
    • 2020-03
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客