`

Java中的异常类

阅读更多
1、Java中的异常概述
Java中的异常类给了程序一个处理错误的机会。异常处理会改变程序的控制流程,让程序可以对出现的错误进行处理。Java处理异常的时候,当程序运行出现异常的时候,Java运行环境就用异常内Exception的相应子类创建一个异常对象,并等待处理。具体来说是通过try-catch来实现的,将有可能出错的语句放在try语句中,但try中的语句出现异常的时候,try部分将立即结束执行,并且java运行环境就可以捕获一个异常对象,在转向执行相应的catch部分,因为这里放了处理相应异常的代码。
 
2、自定义异常类。
自定义的异常类,是Exception类的一个子类,在方法体中定义了异常的处理。再在另一个类中捕获这个异常,当出现异常的时候就可以使用关键字throws抛出。经过这样的声明就可以在自己的代码中使用这个类,并且可以捕获相应的异常。
自定义异常类的例子。
package Test2;

class MyException extends Exception{
	String message;
	MyException(int n){
		message=n+" not a positive number";
	}
	public String getMessage(){
		return message;
	}
}

class DoSomething{
	public void Sqrt(int n) throws MyException{
		if(n<0){
			MyException ex = new MyException(n);
			throw(ex);
		}
		double number=Math.sqrt(n);
		System.out.println(n+" sqrt is:"+number);
	}
}

public class Test1 {
	public static void main(String args[]){
		DoSomething sqrt = new DoSomething();
		try{
			sqrt.Sqrt(28);
			sqrt.Sqrt(-8);
		}catch(MyException e){
			System.out.println(e.getMessage());
		}
	}

}
 
 
3、在异常处理中throw和throws的区别
throw的作用
手动抛出异常,可能在Java程序中有的语句可能会导致一些jvm自身发现不了的异常,这是就要使用throw来声明抛出一个异常,在手动抛出一个异常之前需要先实例化一个异常对象然后才可以抛出。如下面代码所示。
int age = 0;
age = -100;
if(age<0)
{
	Exception e = new Exception();//创建异常对象
	throw e;//抛出异常
}
System.out.println(age);
 
throws的作用
声明方法可能回避的异常。有时候一个方法中产生了异常,但是不知道该怎么处理它,那么就放着不管,当有异常抛出时会中断该方法,而异常被抛到这个方法的调用者那里。这个有点像下属处理不了的问题就交到上司手里一样,这种情况称为回避异常
但是这使得调用这个方法就有了危险,因为谁也不知道这个方法什么时候会丢一个什么样的异常给调用者,所以在定义方法时,就需要在方法头部分使用throws来声明这个方法可能回避的异常。
void fun()throws IOException,SQLException
{
...
}
 这表示 fun方法可能会丢两个异常出来,那么在调用fun的时候可以做好准备。
 
4、异常的种类
检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
  • 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
  • 错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。
 
关于异常的一些其他基础可以参考:http://www.w3cschool.cc/java/java-exceptions.html
分享到:
评论

相关推荐

    JAVA自定义异常类

    ### JAVA自定义异常类 #### 一、基本概念与应用场景 在Java编程中,异常处理是一种重要的机制,用于处理程序运行时可能出现的各种错误情况。Java提供了丰富的内置异常类,但有时候,内置的异常类可能不足以精确地...

    java 文件名大小限制异常类java 文件名大小限制异常类java 文件名大小限制异常类

    java 文件名大小限制异常类java 文件名大小限制异常类java 文件名大小限制异常类java 文件名大小限制异常类java 文件名大小限制异常类java 文件名大小限制异常类java 文件名大小限制异常类java 文件名大小限制异常类...

    java基础第七章内部类与异常类.doc

    Java 基础第七章内部类与异常类 Java 语言支持在一个类中定义另一个类,这样的类称做内部类。内部类和外嵌类之间存在着紧密的关系:内部类可以访问外嵌类的成员变量和方法,而外嵌类也可以使用内部类声明的对象作为...

    java 异常详解,java异常分类,创建自己的异常

    Exception 类是可以被捕捉并且可能恢复的异常类,可以继承 Exception 类生成自己的异常类。Error 类一般被认为是不可恢复和不可捕捉的异常类。 Java 异常处理可以分为以下几个步骤: 1. 抛出异常:在 Java 中,...

    java语言时间异常类

    本文将深入探讨Java中的时间异常类及其在处理时间问题时的重要性。 在Java中,时间处理主要涉及到`java.util.Date`、`java.time`包(Java 8及以后版本)以及`java.text.SimpleDateFormat`等类。然而,当涉及时间...

    java 异常工具类 java 异常工具类

    java 异常工具类 java 异常工具类java 异常工具类 java 异常工具类java 异常工具类 java 异常工具类java 异常工具类 java 异常工具类java 异常工具类 java 异常工具类java 异常工具类 java 异常工具类java 异常工具...

    Java SE程序 自定义异常类

    Java SE程序 自定义异常类Java SE程序 自定义异常类Java SE程序 自定义异常类Java SE程序 自定义异常类Java SE程序 自定义异常类Java SE程序 自定义异常类Java SE程序 自定义异常类Java SE程序 自定义异常类Java SE...

    java 文件信息异常类java 文件信息异常类java 文件信息异常类java 文件信息异常类

    jjava 文件信息异常类java 文件信息异常类java 文件信息异常类java 文件信息异常类java 文件信息异常类java 文件信息异常类

    java中常见的异常类

    Java 中常见的异常类 Java 中常见的异常类可以分为多种,下面将对一些常见的异常类进行详细的介绍和分析。 1. NullPointerException(空指针异常) NullPointerException 是 Java 中最常见的异常之一。这个异常的...

    java异常处理习题

    * `Throwable` 是所有异常类的父类。 * `Error` 和 `Exception` 是 `Throwable` 的两个子类。 * `Exception` 是可以被捕捉的异常,而 `Error` 是不能被捕捉的严重错误。 四、异常处理的出口 * 异常处理的出口是 `...

    Java常见工具类及异常处理

    Java 中常见的异常类包括 ArithmeticException、NullPointerException、ArrayIndexOutOfBoundsException、ClassNotFoundException 等。这些异常类都继承自 Exception 或 Error。 在 Java 中,异常处理可以分为两种...

    java异常类:java异常

    Java异常处理是编程中至关重要的一个环节,它确保了程序的稳定性和健壮性。Java异常是程序在运行过程中遇到的错误,它们可以是编译时错误,也可以是运行时错误。Java通过一套完整的异常处理机制来管理和修复这些错误...

    Java的异常类

    Java中的异常类主要分为两大类:`Error`和`Exception`。前者代表程序无法处理的错误,如JVM系统错误或资源耗尽等情况;后者则是可以被捕获并处理的异常,通常由程序员通过代码逻辑来处理。 #### 二、常见异常类 ...

    JAVA实验十一 异常处理与集合类

    在Java中,异常类可以作为方法的声明部分,表明该方法可能抛出某种类型的异常。这使得调用者必须处理这些异常,或者将异常传播给上层调用者。在`SavingsAccount`和`CheckingAccount`的`withdraw`方法中,异常通过`...

    java 用户信息异常类 java 用户信息异常类

    java 用户信息异常类 java 用户信息异常类java 用户信息异常类 java 用户信息异常类java 用户信息异常类 java 用户信息异常类java 用户信息异常类 java 用户信息异常类java 用户信息异常类 java 用户信息异常类java ...

    java 验证码失效异常类

    java 验证码失效异常类java 验证码失效异常类java 验证码失效异常类java 验证码失效异常类java 验证码失效异常类java 验证码失效异常类java 验证码失效异常类java 验证码失效异常类java 验证码失效异常类java 验证码...

    java课件 常用类与异常处理

    Java提供了多种内置的异常类,如`IOException`, `NullPointerException`, `ArrayIndexOutOfBoundsException`等,开发者也可以自定义异常类。 正则表达式在Java中通过`java.util.regex`包提供,用于文本模式匹配和...

    java 验证码错误异常类 java 验证码错误异常类

    java 验证码错误异常类 java 验证码错误异常类java 验证码错误异常类 java 验证码错误异常类java 验证码错误异常类 java 验证码错误异常类java 验证码错误异常类 java 验证码错误异常类java 验证码错误异常类 java ...

    java 异常类处理

    本文将深入探讨Java中的异常类处理,包括异常的分类、处理机制以及如何有效地利用源码和工具进行调试。 首先,Java中的异常分为检查型异常(Checked Exceptions)和运行时异常(Runtime Exceptions)。检查型异常是...

    java异常机制小结

    Java 异常类的层次图包括 Throwable、Error、Exception、RuntimeException 等几个类。Throwable 是 Java 语言中所有错误或异常的超类。Error 和 Exception 是 Throwable 的两个子类,表示严重错误和非严重错误。...

Global site tag (gtag.js) - Google Analytics