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

异常的基础

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

异常的基础

1.算数异常:ArithmeticExecption
空指针异常:NullPointerException
数组下标越界异常:ArrayIndexOutOfBoundsException
类型转换异常:ClassCastException
字符串转换为数字异常:NumberFormatException
输入类型不匹配:inputMisMatchException

2.捕获异常:try-catch-finally
抛出异常:throw,throws

3.try中没有异常的话,此时会忽略所有的catch,执行后面的代码
如果try发生异常了,异常后面的代码都不会执行,程序会去catch中进行匹配,查看是否有一个catch能将这个异常给解决了
//2.1:找到了,则执行catch块中的代码,只要执行了,则认为异常解决了,程序会继续执行try-catch后面的代码
//2.2:没有解决的,程序会报错,停止运行

3.在编写catch中,异常类型需要有小到大
4.finally一定会被执行的代码,不管是否有异常,一定会执行
finally 有一种场景是不会运行的,手动的关闭程序,System.exit(0);
如果try-catch中存在return的话,finally还会执行吗?如果执行,谁先执行?-finally先执行,然后在返回结果运行顺序如下:

ArithmeticException
程序finally代码
程序结束

代码:
try{
System.out.println(“一”);
System.exit(0);
System.out.println(10/0);
System.out.println(“二”);
return;
}catch(ArithmeticException a){
System.out.println(“ArithmeticException”);
}catch (NullPointerException n) {
System.out.println(“三”);
}catch(ClassCastException c){
System.out.println(“四”);
}catch (Exception e) {
e.printStackTrace();//输出异常信息
System.out.println(“五”);
}finally{
System.out.println(“程序finally代码”);
}
System.out.println(“程序结束”);

4.表示的是,这个方法可能存在异常,当调用者来调用这个方法的时候,public int division(int num1, int num2)throws Exception{//声明异常
throws ,抛出异常,—抛给调用者
public int division(int num1, int num2){
int result;
if(num2 == 0){
throw new ArithmeticException(“除数不能为0”);//抛出异常 创建并抛出异常。
}else{
result = num1 / num2;
}
return result;
}

5.throw new ArithmeticException(“除数不能为0”);
抛出异常 创建并抛出异常,括号内加值–(有参构造)
e.printStackTrace()
控制台显示:java.lang.ArithmeticException: 除数不能为0

自定义异常
package com.sky.exception3;
public class AgeMisMatchException extends RuntimeException{
	public AgeMisMatchException() {
		super();
	}
			
	public AgeMisMatchException(String s){
		super(s);
	}
	
}
package com.sky.exception3;
public class User {
	private int age;
	private String name;
	public int getAge() {
		return age;
	}
			
	public void setAge(int age){
		if (age < 1 || age > 120) {
			throw new AgeMisMatchException("输入年龄不匹配");
		}
		this.age = age;
	}
				
	public String getName() {
		return name;
	}
				
	public void setName(String name) {
		this.name = name;
	}
}
package com.sky.exception3;
public class TestAgeMisMatchException {
	public static void main(String[] args){
	User user = new User();
		user.setAge(123);
	}
}

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

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

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