JAVA中的异常及两种异常处理的方法
:D 首先, :D
java中常见的异常有:
NullPointerException(空指针异常)
ClassCastException(类型强制转换异常)
ArrayindexOutOfBoundsException(数组下标越界异常)
NumberFormatException(字符串转换为数字异常)
IOException(输入输出异常)
FileNotFoundException(文件未找到异常)
NoSuchMethodException(方法未找到异常)
······
:lol: NullPointerException:
简单地说就是调用了未经初始化的对象或者是不存在的对象,特别是对于数组,数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)。
:lol: ClassCastException:
强制类型转换分为基本数据类型转换和引用数据类型转换两种,对于引用数据类型来说,一般就是把父类型转换成子类型(因为子类型比父类型的内容丰富),但不是所有的父类型都可以转换子类型,例如:Object jpanel=new JPanel();JButton jpanel1=(JButton)jpanel;(虽然编译时不会报错,但在运行时会出现ClassCastException)。因为JPanel于JButton是同一个等级的组件,所以不能进行强制类型转换。
:lol: ArrayindexOutOfBoundException:
这个异常比较简单,就是说,数组的下标超出了数组定义时的界限。
:lol: NumberFormatException:
字符串转换成数字时,只有输入的字符串内容是数字才能实现强制转换,例如:String a="123a";int b = Integer.valueOf(a);(编译时不会出错,但在运行时会出现NumberFormatException)。
:lol: 异常先说这么多吧,后续会继续补充。
:)现在说说如何处理异常吧,异常的处理有两种方法,处理异常和声明异常。
:lol: 处理异常:
try{
你要抓的有可能发生异常的代码
}catch(你要抓的异常代码会出现的类型在这加个变量名代表这种类型){
一旦异常出现,这代码块里面的代码会被执行
}finally{
这里的代码是即使出现异常或者没有出现异常,这段代码都会被执行
}
:lol: 声明异常:
throws()必须将其添加到方法签名块的结束位置。
注意:如果有别的方法在调用这个方法时也必须在方法签名块的结束位置添加throws()将异常抛出。
例如:分别用处理异常和声名异常两种方式处理上边的NumberFormatException中的例子中出现的问题,
1. try{
String a="123a";
int b = Integer.valueOf(a);
}catch(NumberFormatException e){
e.printStackTrace();
}
如果忘了或者不清楚哪种异常可以在catch()的小括号中写Exception(因为Exception是最大的异常类)
2.
public class Test {
//主方法
public static void main(String[] args) throws Exception{
Main m = new Main();
m.study();
}
}
class Main{
public void study() throws Exception{
String a="123a";
int b = Integer.valueOf(a);
}
}
注:在方法后抛出异常,在调用的函数方法中也要抛出异常。
JAVA中的异常及两种异常处理的方法相关推荐
- 简述java中异常_柴涛666 的日志-简述java中处理异常的两种方式。
抓try 抛throwspackage 异常; import java.util.Scanner; public class a { public static void main(String[] ...
- Java中HashMap遍历的两种方式
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...
- java中实现同步的两种方式:syschronized和lock的区别和联系
转载自 http://www.cnblogs.com/xiohao/p/4151408.html Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用s ...
- java中字符串的创建_【转载】 Java中String类型的两种创建方式
本文转载自 https://www.cnblogs.com/fguozhu/articles/2661055.html Java中String是一个特殊的包装类数据有两种创建形式: String s ...
- Java中实现多线程的两种方式之间的区别
Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线 ...
- Java中Http连接的两种方式
在java中连接http,介绍两种方法,一种是java的HttpUrlConnection,另一种是apacha公司的httpClient,后者是第三方的类库需要从外部,导入,同时这也是第一次使用外部 ...
- JAVA中初始化线程的两种方法_java中最简单的方式新起一个线程
启动一个线程 在一个方法中启动一个线程,有两种方法 第一种是让类实现Runable接口,这样的话编译器就会提示你实现里面的未实现的方法(就是run方法) 第二种是,现在方法中new一个线程,然后直接调 ...
- Java中动态代理的两种方式JDK动态代理和cglib动态代理以及区别
视频功能审核通过了,可以看视频啦!记得点关注啊~ 注意:因为网络原因,视频前一两分钟可能会比较模糊,过一会儿就好了 记得点关注啊,视频里的wx二维码失效了,wx搜索:"聊5毛钱的java&q ...
- Java中创建String的两种方式差异
我们知道创建一个String类型的变量一般有以下两种方法: String str1 = "abcd"; String str2 = new String("abcd&qu ...
- Java中定义字符串的两种常见方式、使用==和equals()比较字符串
在讲使用==和equals()比较字符串之前,我们首先要讲定义字符串的两种常见方式,一种是定义一个常量,即直接定义字符串,一种是通过new关键字定义一个变量,即使用String类定义字符串,如下图: ...
最新文章
- 设计模式之工厂类模式总结对比、简单工厂模式、工厂方法模式、抽象工厂模式、带反射的工厂模式、例子代码分析、最详细
- windows内核中杀任意进程,可杀360!
- 3、SpringBoot整合MyBatis注解版及配置文件版
- 6.Xilinx RapidIO核仿真与包时序分析
- 在一个函数中把值放到Cookies中比较是否相等
- GDAL读取jpg文件中GPS坐标信息
- c语言编程打印格式输出总结
- 用 SQL 脚本读取Excel 中的sheet数量及名称
- 微分方程传染病模型之指数模型-SI模型-SIS模型-SIR模型
- 匿名者黑页html源码,HACK敲代码黑页源码
- 如何申请一个教育邮箱
- MyEclipse共享项目到SVN服务器
- sqlserver导入mdf文件
- 经验:中小微企业网站上云怎样选择适合自己的云虚拟主机?
- 如梦若梦,肾盂肾炎似烟火
- 清朝后宫佳丽的真实照片
- MAC 下面卸载JDK
- 计算机科学与应用 期刊级别,智能计算机与应用是什么级别的刊物
- AndroidStudio安装及配置 NDK 和 CMake
- ubuntu 通过脚本使用firefox浏览器批量快速打开网页