栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java异常概述,分类,认识----java小知识

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java异常概述,分类,认识----java小知识

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

一、什么是异常?一、学习异常的意义二、异常分类

1.常见运行时异常2.常见编译时异常


一、什么是异常?

异常是程序在“编译”或者“执行”的过程中可能出现的问题,注意:语法错误不算在异常体系中。
比如:数组索引越界、空指针异常、日期格式化异常,等等。

一、学习异常的意义

(1)异常一旦出现,如果没有提前处理,程序就会退出JVM虚拟机而终止。
(2)研究异常并且避免异常,然后提前处理异常,体现的是程序的安全,健壮性。

二、异常分类

Exception: java.lang包下,称为异常类,它表示程序本身可以处理的问题。
RuntimeException及其子类:运行时异常,编译阶段不会报错。(空指针异常,数组索引越界异常)
除RuntimeException之外所有的异常︰编译时异常,编译期必须处理的,否则程序不能通过编译。(日期格式化异常)。
(黑马程序员网课截图)

1.常见运行时异常


代码如下(数组越界异常):

public class test1 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		int [] a= {1,2,3};   //数组越界
		System.out.println(a[3]);
	}

}

结果:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
	at demo3.test1.main(test1.java:8)

代码如下(空指针异常):
public class test1 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		String str=null;
		System.out.println(str.length());
		}

}

结果:

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.length()" because "str" is null
	at demo3.test1.main(test1.java:8)

代码如下(数学操作异常):

public class test1 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		int a=2/0;
		System.out.println(a);
		}

}

结果:

Exception in thread "main" java.lang.ArithmeticException: / by zero
	at demo3.test1.main(test1.java:7)

代码如下(类型转换异常):

public class test1 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Object o=23;
		String str=(String)o;
		System.out.println(str);
	}
}

结果:

Exception in thread "main" java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.String (java.lang.Integer and java.lang.String are in module java.base of loader 'bootstrap')
	at demo3.test1.main(test1.java:8)

代码如下(数字转换异常):

public class test1 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		String str="23ac";
		Integer a=Integer.valueOf(str);
		System.out.println(a);
	}
}

结果

Exception in thread "main" java.lang.NumberFormatException: For input string: "23ac"
	at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
	at java.base/java.lang.Integer.parseInt(Integer.java:660)
	at java.base/java.lang.Integer.valueOf(Integer.java:991)
	at demo3.test1.main(test1.java:8)
2.常见编译时异常

代码如下(示例):

import java.sql.Date;
import java.text.SimpleDateFormat;

public class test1 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		String date="1912-10-11 23:17:00";
		SimpleDateFormat sim=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date da=sim.parse(date);
	}
}

更改后:

import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class test1{

	public static void main(String[] args) throws ParseException {
		// TODO 自动生成的方法存根
		String date="1912-10-11 23:17:00";
		SimpleDateFormat sim=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date da=sim.parse(date);
		System.out.println(da);
	}
}

结果:

Fri Oct 11 23:17:00 CST 1912

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/778470.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号