Java异常处理简单实例

Java异常处理简单实例Java异常处理异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出java.lang.ArithmeticException的异常。异常发生的原因有很多,通常包含以下几大…

大家好,又见面了,我是你们的朋友全栈君。

Java异常处理

异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。

比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.lang.ArithmeticException 的异常。

异常发生的原因有很多,通常包含以下几大类:

  • 用户输入了非法数据。
  • 要打开的文件不存在。
  • 网络通信时连接中断,或者JVM内存溢出。

这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。-

要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:

  • 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
  • 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
  • 错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。

Java异常体系结构

Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception

Java异常处理简单实例

问题

编程实现输入一个正整数,求该数的阶乘的程序。要求能捕获输入数字格式异常(NumberFormatException),即当输入字符不是正整数时,能出现提示信息“输入数据格式不对,请重新输入一个正整数”。

 

代码

package training8;

import java.util.InputMismatchException;
import java.util.Scanner;

public class MutilTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("请输入一个正整数:");
		Scanner sc=new Scanner(System.in);
		int n=-1;
		long sum=1;
		try {
			n=sc.nextInt();
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println("输入数据格式不对,请重新输入一个正整数\n");
		}
		//n=sc.nextInt();
		sc.close();
		if(n!=-1)
		{
		for(int i=1;i<=n;i++)
			sum*=i;
		 System.out.printf("%d!=%d",n,sum);
		}
		sc.close();
		}

}

运行结果

Java异常处理简单实例

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144504.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux 如何查看端口被哪个进程占用,如何查看linux端口被哪个进程占用

    linux 如何查看端口被哪个进程占用,如何查看linux端口被哪个进程占用查看 linux 端口被哪个进程占用的方法 首先查看被占用的端口的进程 并查询进程 id 然后根据集成 id 查询进程 并查看进程详情信息 最后查看进行所在目录 操作进程即可 本教程操作环境 redhatenterp 1 DELLG3 电脑 查看 linux 端口被哪个进程占用的方法 1 查询被占用的端口 首先是需要输入命令 查看被占用的端口的进程 netstat tunpl g

    2025年7月23日
    5
  • BP神经网络算法学习及代码实现(含Python源码)[通俗易懂]

    BP神经网络算法学习及代码实现(含Python源码)[通俗易懂]目录1.写在前面2.BP神经网络推导2.1前向传播2.2反向传播2.2.1求解梯度矩阵2.2.2梯度下降法2.2.3反向传播公式推导输出层误差推导隐藏层误差参数变化率参数更新3.代码实现3.1过程解释3.1.1导入库3.1.2定义sigmoid函数3.1.3导入数据集3.1.4初始化权重和偏倚3.1.5开始训练3.2完整代码3.3预测结果1.写在前面BP神经网络算法作为作为机器学习最基础的算法,非常适合入门。透彻掌握其原理将对于今后的机器学习有很大的帮助。2.BP神经网络推导2.1前向传播前向传播

    2022年9月11日
    0
  • vscode一键注释_vscode代码缩进快捷键

    vscode一键注释_vscode代码缩进快捷键新建HTML文件时,输入感叹号(!),按tab键,系统没有反应,不会自动补全。新版本用html:5会自动补全

    2022年8月22日
    6
  • ExtJs教程 3.0[通俗易懂]

    ExtJs教程 3.0[通俗易懂]ExtJs3.0入门教程教程

    2022年6月18日
    20
  • HADOOP生态圈以及各组成部分的简介

    HADOOP生态圈以及各组成部分的简介HADOOP生态圈以及各组成部分的简介1各组件简介重点组件:HDFS:分布式文件系统MAPREDUCE:分布式运算程序开发框架HIVE:基于大数据技术(文件系统+运算框架)的SQL数据仓库工具HBASE:基于HADOOP的分布式海量数据库ZOOKEEPER:分布式协调服务基础组件Mahout:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库Oozie…

    2022年5月21日
    49
  • windows 10 安装composer问题[通俗易懂]

    windows 10 安装composer问题[通俗易懂]选择手动安装composerhttps://getcomposer.org/download/我选的1.10.0版本

    2022年8月18日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号