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

Java小白入门200例99之Java常见异常及处理

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

Java小白入门200例99之Java常见异常及处理

作者简介

作者名:编程界明世隐
简介:CSDN博客专家,从事软件开发多年,精通Java、Javascript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞!

引言

很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢?
其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大佬的路上一去不复返(切记要亲手练习哦)!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  98.Java异常
►下一篇  100.try catch finally语句

描述

将几种比较常见的异常举例说明。

实例1

InputMismatchException 输入类型错误,这是针对输入的。

package demo.demo98;
import java.util.Scanner;
public class Exception1 {

	public static void main(String[] args) {
		int n = 0;
		while (n<10) {
			System.out.println("请输入:");
			Scanner scanner = new Scanner(System.in);
			n = scanner.nextInt();
			System.out.println("你输入的数字是:"+n);
		}
	}
}

如果我们输入字母或者文章等就会报错,导致程序中断。

处理异常

package demo.demo98;

import java.util.Scanner;

public class Exception1 {

	public static void main(String[] args) {
		int n = 0;
		
		System.out.println("请输入:");
		while (n<10) {
			Scanner scanner = new Scanner(System.in);
			try {
				n = scanner.nextInt();
				System.out.println("你输入的数字是:"+n);
			} catch (Exception e) {
				//一旦捕获异常,则要求用户重新输入,而程序继续运行。
				System.out.println("请输入正确的格式:");
				scanner = new Scanner(System.in);
			}
		}
	}
}
实例2

ArrayIndexOutOfBoundsException 数组下标越界异常,通常出现在数组取值时,取数据下标在数组中并不存在导致。

package demo.demo99;

public class Exception2 {

	public static void main(String[] args) {
		int[] arr={1,3,5,7,9};
		for (int i = 0; i <= arr.length; i++) {
			System.out.println(arr[i]);
		}
	}
}


可以看到数组的长度为5,当下标用5的时候,已经越界了,最多下标只能为4。

  1. 处理方式1,修改循环判断条件 i <= arr.length 改为 i < arr.length
package demo.demo99;

public class Exception2 {

	public static void main(String[] args) {
		int[] arr={1,3,5,7,9};
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}
}
  1. 加入try catch捕获异常,一旦发生异常,则跳出循环,保证程序继续运行。
package demo.demo99;

public class Exception2 {

	public static void main(String[] args) {
		int[] arr={1,3,5,7,9};
		for (int i = 0; i <= arr.length; i++) {
			try {
				System.out.println(arr[i]);
			} catch (Exception e) {
				//一旦发生异常,则跳出循环,保证程序继续运行
				System.out.println("有异常被捕获了,但程序正常运行");
				break;
			}
		}
	}
}

运行结果:

1
3
5
7
9
有异常被捕获了,但程序正常运行

实例3

NullPointerException 空指针异常,是最常见的异常类型,通常为指针指向null导致,可能出现在数组,循环,链表等一系列遍历,取值过程中。当对象为null时的任何操作,都会导致空指针异常。

package demo.demo99;

public class Exception3 {

	public static void main(String[] args) {
		//定义一个String为null
		String abc = null;
		//尝试将null进行split切割操作
		String[] arr = abc.split(" ");
	}
}

异常捕获

package demo.demo99;

public class Exception3 {

	public static void main(String[] args) {
		//定义一个String为null
		String abc = null;
		
		String[] arr = null ;
		
		try {
			//尝试将null进行split切割操作
			arr = abc.split(" ");
		} catch (Exception e) {
			System.out.println("有异常被捕获了,但程序正常运行");
		}
	}
}

运行一下:

有异常被捕获了,但程序正常运行

实例4

ClassCastException 强制类型转换异常。

package demo.demo99;

public class Exception4 {

	public static void main(String[] args) {
		Object a = new Integer("100");
		System.out.println((String)a);
	}
}

异常捕获

package demo.demo99;

public class Exception4 {

	public static void main(String[] args) {
		Object a = new Integer("100");
		try {
			System.out.println((String)a);
		} catch (Exception e) {
			System.out.println("有异常被捕获了,但程序正常运行");
		}
	
	}
}
实例5

NumberFormatException强制类型转换错误:字符串转换为数字异常

package demo.demo99;

public class Exception5 {

	public static void main(String[] args) {
		int a = Integer.parseInt("abc");
	}
}

异常捕获:

package demo.demo99;

public class Exception5 {

	public static void main(String[] args) {
		int a = 0;
		try {
			a = Integer.parseInt("abc");
		} catch (Exception e) {
			System.out.println("有异常被捕获了,但程序正常运行");
		}
	}
}
实例6

ClassNotFoundException找不到文件异常

package demo.demo99;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class Exception6 {

	public static void main(String[] args) {
		File file = new File("/a.text");
		try {
			FileInputStream in = new FileInputStream(file);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		
	}
}

实例7

StackOverflowError 常见于递归调用,应设置好递归跳出条件。

package demo.demo99;

public class Exception7 {

	public static void main(String[] args) {
		test();
		
	}
	
	public static void  test() {
		test();
	}
}

实例8

ArithmeticException 除数为0时会报出该错误,解决方法:避免除数为0。

package demo.demo99;

public class Exception8 {

	public static void main(String[] args) {
		System.out.println(1/0);
	}
}
小结

这节总结了“ Java常见异常及处理 ”,希望能对大家有所帮助,请各位小伙伴帮忙 【点赞】+【收藏】+ 【评论区打卡】, 如果有兴趣跟小明哥一起学习Java的,【关注一波】不迷路哦。

评论区打卡一波让我知道你,明哥会持续关注你的学习进度哦!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  98.Java异常
►下一篇  100.try catch finally语句

热门专栏推荐

1.Java小游戏系列(俄罗斯方块、飞机大战、植物大战僵尸等)
2.JavaWeb项目实战(图书管理、在线考试、宿舍管理系统等)
3.Javascript精彩实例(飞机大战、扫雷、贪吃蛇、验证码等)
4.Java小白入门200例
5.从零学Java、趣学Java、以王者荣耀角度学Java

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

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

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