引言作者名:编程界明世隐
简介:CSDN博客专家,从事软件开发多年,精通Java、Javascript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞!
很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢?
其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大佬的路上一去不复返(切记要亲手练习哦)!
✪ Java小白入门200例系列目录索引
◄上一篇 98.Java异常
►下一篇 100.try catch finally语句
将几种比较常见的异常举例说明。
实例1InputMismatchException 输入类型错误,这是针对输入的。
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,修改循环判断条件 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]);
}
}
}
- 加入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;
}
}
}
}
运行结果:
实例31
3
5
7
9
有异常被捕获了,但程序正常运行
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



