java——异常

java——异常

Java 异常处理

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

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

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

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

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

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

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

import org.junit.Test;

import Demo4.Demo1.Pen;

public class Demo2 {
	@Test
	public  void test1(){
		Person p = new Person("彭礼勇");
		Pen pen= new Pen();
		p.use(pen);
	}
	@Test
	public void test2(){
		Person p =new Person("张三");
		Pen pen =new Pen();
		p.use(pen);
	}
	
	public class Person{
		//Alt + Shift + S
		private String name;
		//快捷建 c 
		public Person() {
			super();
			// TODO Auto-generated constructor stub
		}
		//快捷键 o
		public Person(String name) {
			super();
			this.name = name;
		}
	//有一个get 和 set的
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public void use(Pen p){
			try {
				p.test();
			}catch (Exception e){
				System.out.println(e);
			}
		}
	}
	public class Pen{
		public void test(){
			System.out.println("检查插销是否有电");
			throw new RuntimeException("哇。。我被电到了");
		}

		public void use(Pen p) {
			// TODO Auto-generated method stub
			
		}
		
	}
}

 

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

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

(0)
上一篇 2021年9月29日 下午11:00
下一篇 2021年9月29日 下午11:00


相关推荐

  • Rosenblatt感知器

    Rosenblatt感知器1 引言感知器是用于线性可分模式 即模式分别位于超平面所分隔开的两边 分类的最简单的神经网络模型 基本上它由一个具有可调突触权值和偏置的神经元组成 用来调整这个神经网络中自由参数的算法最早出现在 Rosenblatt 提出的用于其脑感知模型的一个学习过程中 事实上 Rosenblatt 证明了当用来训练感知器的模式 向量 取自两个线性可分的类时 感知器算法是收敛的 并且决策面是位于两类之间的超平面 算法

    2026年3月19日
    2
  • Android adb环境变量配置

    Android adb环境变量配置下载安装好 AndroidSDK 后 直接在命令提示符窗口输入 adb 会提示不是内部命令 如下 此时 如何配置环境变量呢 其实和 Java 的环境变量配置相似首先 右击我的电脑 属性 高级系统设置 环境变量其次 进入 ADB 安装目录 找到 platform tools 路径 复制此路径名 D AndroidSdk platform tools 在环境变量的系统变量中 增加变量

    2026年3月17日
    2
  • Java中&0xFF是什么意思?计算机的原码、补码和反码

    Java中&0xFF是什么意思?计算机的原码、补码和反码公司项目中有向MCU发数据的代码,新来的同事对其中的&0xFF很不理解,我解释了很多遍他还是蒙圈状态,可能我的表达能力太差,想想还是用一篇博客来详细说明吧,代码如下:更新:07月10日,有个小伙伴对这种操作各种不习惯,怎么解释他都想不明白,所以增加了代码注释为什么要加上“&0xFF”?拆分理解下0xFF是16进制的表达方式,F是15;十进制为:255,二进制为:11111111

    2022年6月19日
    850
  • 易企秀的制作方法和步骤_易企秀制作流程

    易企秀的制作方法和步骤_易企秀制作流程虽然易企秀邀请函日渐被广大网友所知,也有很多网友在自己制作易企秀,但仍有很多想要制作易企秀,却自己不会制作的朋友,不得不花大价钱请他人制作,所以我们特地为您准备了一个如何快速学会制作易企秀的教程。打开

    2022年8月4日
    8
  • pycharm设置断点单步运行_pycharm怎么debug

    pycharm设置断点单步运行_pycharm怎么debug在我们平时写程序的时候,简单的程序一眼就能看出问题所在,但是稍微大一点的程序,就很难在茫茫代码中找到一个参数的失误带来的bug,所以我们引入debug单步调试。一、常用操作F8:stepover单步遇到断点后,程序停止运行,按F8单步运行。不进入调用函数内部F7:stepinto进入配合F8使用。单步调试F8时,如果某行调用其他模块的函数,在此执行F7,可以进入函数内部,如果是F…

    2022年8月27日
    41
  • db2有没有rownum_row_number() over order by

    db2有没有rownum_row_number() over order byrank和rownumber都是自动生成序号,后面都可以跟partitionby分组和orderby排序。不同之处在于,rownumber在orderby后面的字段,排序字段数值相等时,rownumber字段依次递增。   rank在orderby后面的字段,排序字段数值相等时,rownumber都相同,直接跳到下一个不同的序号。selectrank

    2022年5月3日
    86

发表回复

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

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