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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html超链接样式顺序,CSS页面布局常用知识汇总(超链接样式)

    html超链接样式顺序,CSS页面布局常用知识汇总(超链接样式)CSS中的知识非常多,我们不可能全都记得住。闲暇时整理了一些CSS页面布局的常用知识,这篇文章就和大家分享一下CSS超链接样式的常用知识。需要的朋友可以参考一下,希望可以帮助到你。设计网页时,我们可以通过伪类对链接的样式进行控制,引导用户浏览网页,增加互动的丰富元素。1、链接的属性超链接的标签为,网页上的超链接一般用来链接文字或者图片。超链接有4个伪类,分别代表链接的不同状态。a:link(超链…

    2022年7月19日
    32
  • C语言背包问题优化[通俗易懂]

    C语言背包问题优化[通俗易懂]#include#defineV1500intf[V];intweight[10];intvalue[10];#definemax(x,y)(x)>(y)?(x):(y)intmain(){intN,M;scanf(“%d%d”,&N,&M);for(inti=1;

    2022年7月14日
    16
  • Python机器学习实战&lt;一&gt;:环境的配置

    Python机器学习实战&lt;一&gt;:环境的配置

    2021年11月14日
    51
  • vmware15最新虚拟机激活码【在线注册码/序列号/破解码】

    vmware15最新虚拟机激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    127
  • linux下的rar命令,Linux下的压缩解压命令「建议收藏」

    linux下的rar命令,Linux下的压缩解压命令「建议收藏」1.Linuxzip命令压缩zip-rfilename.zip./*//将当前目录下的所有文件和文件夹全部压缩成filename.zip文件-r表示递归压缩子目录下所有文件解压unzip-dtestfilename.zip//把filename.zip文件解压到./test-d:-dtest指明将文件解压缩到….

    2022年7月11日
    22
  • 键值对操作

    键值对RDD通常用来进行聚合计算。我们一般要先通过一些初始ETL(抽取、转化、装载)操作来将数据转化为键值对形式。键值对RDD提供了一些新的操作接口(比如统计每个产品的评论,将数据中键相同的分为一组,将两个不同的RDD进行分组合并等)。1.动机Spark为包含键值对类型的RDD提供了一些专有的操作。这些RDD被称为pairRDD。PairRDD是很多程序的构成要素,

    2022年4月8日
    86

发表回复

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

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