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
			
		}
		
	}
}

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 2011年年终珠三角为主的各种工种收入大全「建议收藏」

    2011年年终珠三角为主的各种工种收入大全「建议收藏」返回顶部 20楼2011-12-0508:35:13东莞。4300/月,所谓财务主管,老婆3200/月,所谓采购主管,小孩9个月,存款现在6000块,穿35块的皮鞋,280块的山寨手机。这日子是怎么过的啊!!无房贷无车贷,也就是无房无车!!我会计2200元包食.我老公6000多元不包食住.没房没车.一个小孩子在深圳读幼儿园.到现在存款只有几千元.

  • 对LARS(Least Angle Regression)的简单理解

    对LARS(Least Angle Regression)的简单理解前言我在本科的时候接触过用LASSO筛选变量的方法,但了解不多。这几天在公司实习,学习到特征选择,发现还有个LARS是经常和LASSO一起被提起的,于是我临时抱佛脚,大概了解了一下LARS的原理。在看文章的时候发现很多人提到SolutionPath这样一个概念,感觉很费解,后来参阅了Efron等人的"LeastAngleRegression"论文,总算是明白了一些。不过本人由于懒,后面数学…

  • B2C电子商务系统研发——商品SKU分析和设计(一)

    B2C电子商务系统研发——商品SKU分析和设计(一)

    2021年10月30日
  • mysql 多行转一列_mysql行转列(多行转一列)

    mysql 多行转一列_mysql行转列(多行转一列)场景比如说一个订单对应多条数据,当状态(status)=1的时候,数量(num)=25,当状态(status)=2的时候,数量(num)=45,现在想用一条sql记录下不同状态对应的数量为多少,如下图所示:期待结果->sql语句示例SELECTtrades_id,MAX(CASEWHENapply_status=1THENpay_changeELSE0END)’nu…

  • SpringCloud架构图及简介[通俗易懂]

    SpringCloud架构图及简介[通俗易懂]SpringCloud架构图SpringCloud介绍微服务开发模式2014年说的微服务服务,号称兼顾Dev(开发)和Ops(运维),但实际大多数人都在讲Dev,包括框架SpringBoot/SpringCloud,方法论DDD,包括容器化Docker,强调都是开发2016年CNCF大力推广云原生(CloudNative)概念,推出K8S等运维平台或工具,才逐渐偏向运维Springboot:搭建微服务的基石,可以帮我们快速、方便的启动一个微服务应用Spring

  • 数据库(第一范式,第二范式,第三范式)

    数据库(第一范式,第二范式,第三范式)数据库(第一范式,第二范式,第三范式)范式:英文名称是NormalForm,它是英国人E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三个范式,

发表回复

您的电子邮箱地址不会被公开。

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