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


相关推荐

  • SQL 嵌套查询 —比较 很有用「建议收藏」

    SQL 嵌套查询 —比较 很有用「建议收藏」select  avg(datediff(year,Birthday,getdate()))asaveAge,Cofrom (selectbirthday,Cofromv_temp1whereBirthday!=”)asco groupbyco

    2022年8月10日
    6
  • 服务器安装linux系统安装教程_linux服务器重装系统

    服务器安装linux系统安装教程_linux服务器重装系统一、linux镜像的刻录1.首先打开电脑上面任意浏览器(IE、MicrosoftEdge、chrome、Firefox),输入网址https://www.centos.org/我们可以看到如下界面选择立即获取centos下载最新的安装镜像,复制下载链接(http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64…

    2022年10月5日
    3
  • SQL命令之FROM子句

    SQL命令之FROM子句nbsp nbsp nbsp nbsp nbsp nbsp nbsp FROM 子句指定 SELECT 语句查询及与查询相关的表或视图 在 FROM 子句中最多可指定 256 个表或视图 之间用逗号分隔 nbsp nbsp nbsp nbsp nbsp nbsp nbsp 在 FROM 子句同时指定多个表或视图时 如果选择列表中存在同名列 这时应使用对象名限定这些列所属的表或视图 amp

    2025年11月8日
    0
  • sass和less的区别使用_连山易的原理及用法

    sass和less的区别使用_连山易的原理及用法1.原理          1.1Less定义:是一种动态的样式语言,使CSS变成一种动态的语言特性,如变量、继承、运算、函数。Less既

    2025年6月25日
    2
  • java random nextint_java Random.nextInt()方法的具体使用

    java random nextint_java Random.nextInt()方法的具体使用licintnextIn intn 该方法的作用是生成一个随机的 int 值 该值介于 0 n 的区间 也就是 0 到 n 之间的随机 int 值 包含 0 而不包含 n 直接上代码 packageorg xiaowu random demo importjava util Random importorg junit Test publicclassR Testpublicv

    2025年10月13日
    3
  • Qt面试题整理

    Qt面试题整理1、Qt信号槽机制的优势(1)类型安全。需要关联的信号和槽的签名必须是等同的,即信号的参数类型和参数个数同接收该信号的槽的参数类型和参数个数相同。不过,一个槽的参数个数是可以少于信号的参数个数的,但缺少的参数必须是信号参数的最后一个或几个参数。如果信号和槽的签名不符,编译器就会报错。(2)松散耦合。信号和槽机制减弱了Qt对象的耦合度。激发信号的Qt对象无需知道是哪个对象的哪个槽需要接收它发出的…

    2022年6月25日
    95

发表回复

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

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