Java中包、异常及异常处理

一、Java中常见包

1. 包的定义
  package的简单定义如下:package是一个为了方便管理组织java文件的目录结构,并防止不同java文件之间发生命名冲突而存在的一个java特性。不同package中的类的名字可以相同,只是在使用时要带上package的名称加以区分。

2. 常用包

  • java.lang:该包提供了Java语言进行程序设计的基础类,里面的Runnable接口和Object、Math、String、StringBuffer、System、Thread以及Throwable类需要重点掌握;

  • java.util:该包提供了集合框架、遗留的集合类、事件模型、日期国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组);

  • java.io:该包通过文件系统、数据流和序列化提供系统的输入与输出;

  • java.net:该包提供了实现网络应用与开发的类

  • java.sql:该包提供了使用Java语言访问并处理存储在数据源(通常是一个关系型数据库)中的数据API;

  • java.awt/javax.swing:这两个包提供了GUI设计与开发的类,java.awt包提供了创建界面和绘制图形图像的所有类,而javax.swing包提供了一组 “轻量级” 的组件,尽量让这些组件在所有平台上的工作方式相同;

  • java.text:提供了与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。


二、Java中常见异常

1. java.lang.NullPointerException
  空指针异常,调用了未经初始化的对象或者是不存在的对象。经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,图片创建时的路径错误,或者数组初始化后元素没有实例化等等;

2. java.lang.ClassNotFoundException
  指定的类不存在,考虑一下类的名称和路径是否正确;

3. java.lang.IndexOutOfBoundsException
  数组下标越界异常,查看调用的数组或者字符串的下标值是不是超出了数组的范围;

4. java.lang.NumberFormatException
  字符串转换为数字异常,当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常,例如字符型数据中包含了非数字型的字符:123#56

5. java.lang.IllegalArgumentException
  方法参数错误,检查下方法调用过程中参数传递是否发生错误,可能是参数类型或者参数范围超过等;

6. java.lang.ArithmeticException
  数学运算异常,例如除数为0就会抛出该异常;

7. java.lang.NoSuchMethodException/NoSuchFiledException
  方法(文件)不存在异常,当程序试图通过反射来创建对象,访问(修改或读取)某个方法(文件),但是该方法(文件)不存在就会引发该异常;

8. java.lang.InterruptedException
  被中止异常,当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其它线程通过interrupt方法终止该线程时会抛出该异常;

9. java.lang.StackOverflowError
  堆栈溢出错误,当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误。

参考:Java常见异常总结


三、try{ } catch{ } finally{ }
try{
	......
	//正常执行的代码(可能会出现异常)
}catch(Exception e){
	......
	//异常被捕获后执行的代码
}finally{
	......
	//无论正常执行还是出现异常之后都会执行的代码
}

1. try{ ... }代码块出现异常,就不会执行出现异常语句后面的所有正常代码,这时异常后可能会被catch{...}代码块捕获掉,比如上面catch声明的是捕获Exception异常,那么所有Exception包括其子类都会被捕获。异常一旦被捕获,就会执行catch里面的代码;如果异常没有被捕获,就会往外抛出,相当于这整个方法出现了异常;

2. 只要执行进了try/catch代码块,后续finally{...}中的代码永远都会被执行。执行完finally中的代码,如果异常被catch捕获就会执行finally后其它代码,否则就会继续往外抛出异常,不会执行后续代码;

3. return无论在哪里,只要执行到就会返回,但唯一一点不同的是如果return在try或catch中,即使返回了,最终finally{...}中的代码都会被执行。


四、throws和try catch的区别
  • 1、throws是表明方法抛出异常,需要调用者来处理,如果不想处理就一直向外抛,最后会有jvm来处理;

  • 2、try catch 是自己来捕获方法抛出的异常,然后在catch里面去处理;

一般情况下,使用try catch比较多,这样可以清楚地看到异常的原因或者自定义抛出异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值