wps遇到异常,正在努力修复中;打开一个文档没有问题,只要多开文档就会出现WPS遇到异常,正在努力修
484
2022-05-29
异常的概念
什么是异常?
在程序运行时打断正常程序流程的任何不正常情况称为异常
导致程序发生异常的原因很多,如
1.数组的下标越界 2.除法运算的除数为0
3.空指针访问 4.试图访问不存在的文件
java异常处理机制
1.Java语言的异常处理机制为提高Java程序的健壮性提供了良好的支持
♈ 当产生异常时,Java能够启用相应的异常处理程序
♈Java中的异常是类,和普通的类没有本质区别
异常情况举例
1.编写程序,从键盘上输入三角形的三条边长a,b,c,输出其面积
2.计算面积的海伦公式为
代码:
public class TestException { public static double calculateArea(double a, double b, double c) { double p = (a+b+c)/2; return Math.sqrt(p*(p-a)*(p-b)*(p-c)); } public static void main(String[ ] args) { double a = Double.parseDouble(args[0]); double b = Double.parseDouble(args[1]); double c = Double.parseDouble(args[2]); double s = calculateArea(a, b, c); System.out.println( "三角形面积是" + s); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
运行命令:java TestException 3.0 4.0 5.0
输出:三角形面积是6.0
异常情况1
运行命令:java TestException
在控制台将显示数组访问越界的错误信息:
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 0 at TestException.main(TestException.java:10)
1
2
3
造成上述异常的原因是:没有输入足够的参数,致
使字符串数组args的长度为0。当访问第1个参数
args[0] 时,数组访问会越界。
异常情况2
运行命令:java TestException 3.0 4.b 5.0
在控制台将显示数字格式异常的错误信息:
Exception in thread "main" java.lang.NumberFormatException: For input string: "4.b" …… at TestException.main(TestException.java:11)
1
2
3
4
5
造成上述异常的原因是:输入的第2个字符串参数4.b不
是一个数字文本,无法转换成所需要的双精度数字类型
异常情况处理1
public class TestException{ public static double calculateArea(double a, double b, double c){ double p = (a+b+c)/2; return Math.sqrt(p*(p-a)*(p-b)*(p-c)); } public static void main(String[] args){ if (args.length < 3) { System.out.println("输入的参数个数应至少为3个,请 重新执行本程序"); } double a = Double.parseDouble(args[0]); double b = Double.parseDouble(args[1]); double c = Double.parseDouble(args[2]); double s = calculateArea(a, b, c); System.out.println("三角形面积是"+s); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
异常处理情况2
public class TestException{ public static double calculateArea(double a, double b, double c){ double p = (a+b+c)/2; return Math.sqrt(p*(p-a)*(p-b)*(p-c)); } public static void main(String[] args){ try{ double a = Double.parseDouble(args[0]); double b = Double.parseDouble(args[1]); double c = Double.parseDouble(args[2]); double s = calculateArea(a, b, c); System.out.println("三角形面积是"+s); }catch(ArrayIndexOutOfBoundsException e){ System.out.println("数组访问越界,请至少输入3 个参数"); } } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.*; public class TestExceptionnew { public static double calculateArea(double a, double b, double c) { double p = (a+b+c)/2; return Math.sqrt(p*(p-a)*(p-b)*(p-c)); } public static void main(String[] args) { Scanner reader=new Scanner(System.in); double a = reader.nextDouble(); double b = reader.nextDouble(); double c = reader.nextDouble(); double s = calculateArea(a, b, c); System.out.println("三角形面积是"+s); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Java 数据结构
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。