java中的“异常”

异常:Java运行期间发生的问题就是异常,另外,Java中运行时发生的除了异常Exception还有错误Error。

异常:可以有针对性的处理方式;错误:通常发生后不会有针对性的处理方式,往往是系统级别的问题,无法针对处理,只能修正代码。

举个例子:对给定的数组同过给定的交表获取元素,

class Demo
{
	/*
	对给定的数组通过给定的角标获取元素。
	*/
	int getElement(int[] arr,int index)
	{
		/*
		它所提供的信息不够给力。想要更清晰,需要自己写。
		它的抛出不满足我们的要求。准备自己抛。
		*/
		if(arr==null)
		{
			throw new NullPointerException("arr指向的数组不存在");
		}

		if(index<0 || index>=arr.length)
		{
			//该条件如果满足,功能已经无法继续运算。这时 就必须结束功能,并将问题告知给调用者。这时就需要通过异常来解决。
			//怎么用呢?
			//1,创建一个异常对象。封装一些提示信息(自定义)。
			//2,需要将这个对象告知给调用者。怎么告知呢?怎么将这个对象传递到调用者处呢?通过关键字throw就可以完成。 throw 异常对象;
			//3,throw用在函数内,抛出异常对象,并可以结束函数。
			throw new ArrayIndexOutOfBoundsException("错误的角标,"+index+"索引在数组中不存在");
		}

自定义异常:

上边的Exception中的异常不好认,准备定义一个符合我的程序要求的问题名称以及问题的信息,其实异常就是讲问题,封装成了对象。

查阅API发现:

Throwable

|--Error

|--Exception

Throwable是异常和错误的父类,自定义异常被抛出,必须是继承
Throwable或者Throwable的子类,该对象才可以被Throw抛出。

声明和捕获:

声明:将问题标识出来,报告给调用者。

如果函数内通过throw抛出了编译时异常,而捕获,那么必须通过throws进行声明,让调用者去处理。

捕获:Java中对异常有针对性的语句进行捕获。

语句:

try

{

//需要被检测的语句。

}

catch(异常类 变量)//参数。

{

//异常的处理语句。

}

finally

{

//一定会被执行的语句。

}

throw和throws的区别?

1,throw用在函数内。

throws用在函数上。

2,thorw抛出的是异常对象。

throws用于进行异常类的声明,后面异常类可以有多个,用逗号隔开。

class Demo
{
	void show()throws Exception
	{
		throw new Exception();
	}
}

class
{
	public static void main(String[] args)
	{
		System.out.println("Hello World!");
	}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-07 21:19:27

java中的“异常”的相关文章

Java中的异常和处理详解

原文出处:代码钢琴家 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?. Java提供了更加优秀的解决办法:异常处理机制. 异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰. Java中的异常可以是函数中的语句执行时引发的,也可以是程序员通过throw 语句手

JAVA中的异常(异常处理流程、异常处理的缺陷)

异常处理流程 1)首先由try{...}catch(Exception e){ System.out.println(e); e.printStackTrace(); }finally{...}结构 2)当JVM遇到异常时,会产生一个Exception对象 或 继承自Exception的子类的对象. 3)将异常对象向上层(调用它的代码块)抛出,知道碰到一个catch块(作相应处理) 或 一直抛到了最外层(导致程序异常终止).(并停止异常之后的代码的执行,但是finally块中的代码还会执行!换句

java中关于异常的处理

初学java的时候,当我们碰到异常时,一般会把异常直接throws抛出去,或则在catch的时候,简单的写一句打印异常信息,但是在实际开发中,是不能这么做的.如果我们将底层的某一个异常简单的print出去,那么这个异常的捕获是没有起到任何作用,反而给编译器一个"异常已处理"的假象,导致有异常的程序会继续往下执行,这是不允许的:如果我们直接将异常抛出去,抛给上一层,也是徒劳的,反而给上一层带来麻烦. 为了避免这样的情况发生,我们一般会将异常进行转换,将编译时异常转变成运行时异常,再thr

完成这个例子,说出java中针对异常的处理机制。

有一个类为ClassA,有一个类为ClassB,在ClassB中有一个方法b,此方法抛出异常,在ClassA类中有一个方法a,请在这个方法中调用b,然后抛出异常.在客户端有一个类为TestC,有一个方法为c ,请在这个方法中捕捉异常的信息.完成这个例子,请说出java中针对异常的处理机制. [java] view plaincopy package com.itheima; import java.io.IOException; /** *第6题:有一个类为ClassA,有一个类为ClassB,

Java中的异常-Throwable-Error-Exception-RuntimeExcetpion-throw-throws-try catch

今天在做一个将String转换为Integer的功能时,发现Integer.parseInte()会抛出异常NumberFormatException. 函数Integer.parseInt(String)定义 1 public static int parseInt(String s) 2 throws NumberFormatException 测试代码: 1 public class Test 2 { 3 public static void main(String[] args) 4 {

Java 中的异常和处理详解

原文出处: 代码钢琴家 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?. Java提供了更加优秀的解决办法:异常处理机制. 异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰. Java中的异常可以是函数中的语句执行时引发的,也可以是程序员通过throw 语句

夯实Java基础系列10:深入理解Java中的异常体系

目录 为什么要使用异常 异常基本定义 异常体系 初识异常 异常和错误 异常的处理方式 "不负责任"的throws 纠结的finally throw : JRE也使用的关键字 异常调用链 自定义异常 异常的注意事项 当finally遇上return JAVA异常常见面试题 参考文章 微信公众号 Java技术江湖 个人公众号:黄小斜 - Java异常 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.c

Java中处理异常的9个最佳实践

Java中处理异常的9个最佳实践Java中的异常处理不是一个简单的话题.初学者很难理解,甚至有经验的开发人员也会花几个小时来讨论应该如何抛出或处理这些异常. 这就是为什么大多数开发团队都有自己的异常处理的规则和方法.如果你是一个团队的新手,你可能会惊讶于这些方法与你之前使用过的那些方法有多么不同. 然而,有几种异常处理的最佳方法被大多数开发团队所使用.下面是帮助改进异常处理的9个最重要的方法. 在Finally中清理资源或者使用Try-With-Resource语句通常情况下,你在try中使用了

JAVA中常见异常小结

1.java.lang.ArithmeticException 算术运算异常,例如除数为0,所以引发了算数异常 2.Java.lang.StringIndexOutOfBoundsException:  这是截取字符串substring()产生的下标越界异常.原因是可能是字符串为空,或长度不足1 3.Java.lang.NullPointerException空指针异常 出现该异常的原因在于某个引用为null,但却调用了它的某个方法,这时就会出现该异常 4.ClassCastException