-1-6 java 异常简单介绍 java异常 异常体系 Throwable 分类 throws和throw 异常处理 自定义异常

异常

异常:异常就是Java程序在运行过程中出现的错误。

异常由来:问题也是现实生活中一个具体事务,也可以通过java 的类的形式进行描述,并封装成对象。

其实就是Java对不正常情况进行描述后的对象体现。

Throwable

|--Error        严重问题,我们不处理。

|--Exception

|--RuntimeException        运行期异常,我们需要修正代码

|--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过

Exception和Error的子类名都是以父类名作为后缀。

Java中的异常被分为两大类:编译时异常和运行时异常。

所有的RuntimeException类及其子类的实例被称为运行时异常,其他的异常就是编译时异常

编译时异常

?Java程序必须显示处理,否则程序就会发生错误,无法通过编译

运行时异常

?无需显示处理,也可以和编译时异常一样处理

Throwable基本方法

getMessage()

?获取异常信息,返回字符串。

toString()

?获取异常类名和异常信息,返回字符串。

printStackTrace()

?获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。

printStackTrace(PrintStream s)

?通常用该方法将异常内容保存在日志文件中,以便查阅。

throws和throw

throws

?用在方法声明后面,跟的是异常类名

?可以跟多个异常类名,用逗号隔开

?表示抛出异常,由该方法的调用者来处理

?throws表示出现异常的一种可能性,并不一定会发生这些异常

throw

?用在方法体内,跟的是异常对象名

?只能抛出一个异常对象名

?表示抛出异常,由方法体内的语句处理

?throw则是抛出了异常,执行throw则一定抛出了某种异常

异常处理过程

 

JVM的默认处理

把异常的名称,原因,位置等信息输出在控制台,但是程序不能继续执行了。

自己处理

try...catch...finally

自己编写处理代码,后面的程序可以继续执行

throws

把自己处理不了的,在方法上声明,告诉调用者,这里有问题

try

{

需要检测的代码;

}

catch

(异常类  变量)

{

异常处理代码;

}

finally

{

一定会执行的代码;

}

Finally代码块控制的语句体一定会执行

只有一种情况不会被执行。就是在之前执行了System.exit(0)。

主要用于释放资源

常见变形形式

try...catch...finally

try...catch...

try...catch...catch...

try...catch...catch...fianlly

try...finally

自定义异常

自定义类继承Exception或者其子类,只需要提供无参构造和一个带参构造即可

通过构造函数定义异常信息。

例:

Class DemoException extends Exception

{

  DemoException(String message)

  {

  super(message);

  }

}

通过throw将自定义异常抛出。

RuntimeException以及其子类如果在函数中被throw抛出,可以不用在函数上声明。

1.父的方法有异常抛出,子的重写方法在抛出异常的时候必须要小于等于父的异常,也就是必须抛出相同的异常或异常的子类

2.父的方法没有异常抛出,子的重写方法不能有异常抛出,如果子类方法内有异常发生,那么子类只能try,不能throws

3.父的方法抛出多个异常,子的重写方法必须比父少或者小,不能抛出新的异常

原文地址:https://www.cnblogs.com/noteless/p/9260454.html

时间: 2025-01-03 17:54:16

-1-6 java 异常简单介绍 java异常 异常体系 Throwable 分类 throws和throw 异常处理 自定义异常的相关文章

java 的简单介绍

一.Java 特点     1.简单: 和C++相比较     2.面向对象     3.跨平台    由于它是先编译后解释 + JVM(屏蔽底层操作系统的差异) 二.程序的运行一般有两种:     1.编译  源文件 ------> 编译器  机器码文件       快  无法跨平台     2.解释  源文件 ------> 解释器  逐行翻译并运行   慢  可以跨平台 三.Java运行机制: 先编译,后解释     .java 源文件  -------> 编译器 .class 字

关于bean.java的简单介绍!

关于bean.java功能介绍 ·JavaBean是使用Java语言开发的一个可重用的组件,在JSP的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁. 个人理解:bean.java就是包含了一些私有变量和公有方法的类. 下面通过电子商务网站管理系统中  商品订单 简单介绍bean. 1 package com.oracle.jsp.bean; 2 /** 3 * 商品订单Bean 4 * @author svson 5 * 6 */ 7 public class Ord

java多线程(简单介绍)

简单介绍 线程是程序运行的基本执行单元.当操作系统(不包括单线程的操作系统,如微软早期的DOS)在执行一个程序时,会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被称为主线程)来作为这个程序运行的入口点.因此,在操作系统中运行的任何程序都至少有一个主线程. 线程不仅可以共享进程的内存,而且还拥有一个属于自己的内存空间,这段线程不仅可以共享进程的内存,而且还拥有一个属于自己的内存空间,这段部所使用的数据,如线程执行函数中所定义的变量. 注意:任何一个线程在建立时都会执行一个函

简单介绍 Java 构造器

导读 构造器是编程的强大组件.使用它们来释放 Java 的全部潜力. 在开源.跨平台编程领域,Java 无疑(?)是无可争议的重量级语言.尽管有许多伟大的跨平台框架,但很少有像 Java 那样统一和直接的. 当然,Java 也是一种非常复杂的语言,具有自己的微妙之处和惯例.Java 中与构造器 constructor有关的最常见问题之一是:它们是什么,它们的作用是什么? 简而言之:构造器是在 Java 中创建新对象object时执行的操作.当 Java 应用程序创建一个你编写的类的实例时,它将检

初识Java和简单的Java文件编写及注意事项

Java的起源: 大胡子的Java语言主要的开发者James Gosling由此也被公认为Java语言之父.1995年5月23日,Sun科技部主管John Gage和Netscape创始人及副执行官Marc Andressen登上论坛向SunWord的听众宣布Java技术正式诞生,并将其纳入Netscape Navigator这个Web浏览器.十多年过去了,Java编程语言已经发展为“一种计算语言,一个平台,一个网络计算的架构(Sun首席执行官:Mac)”. Java平台分类:Java编程语言体

javascript的抛异常简单介绍

作用:和java类似,不过我觉得挺鸡肋的.哈哈,个人见解... 上代码:123.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta charset="utf-8"> <script type=

简单介绍java Enumeration(转)

Enumeration接口 Enumeration接口本身不是一个数据结构.但是,对其他数据结构非常重要. Enumeration接口定义了从一个数据结构得到连续数据的手段.例如,Enumeration定义了一个名为nextElement的方法,可以用来从含有多个元素的数据结构中得到的下一个元素. Enumeration接口提供了一套标准的方法,由于Enumeration是一个接口,它的角色局限于为数据结构提供方法协议.下面是一个使用的例子: //e is an object that impl

Java Swing 简单介绍

Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT更好的屏幕显示元素.它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT.它们是JFC的一部分.它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们.这意味着你可以在任意平台上使用JAVA支持的任意面板.轻量级组件的缺点

Java提高篇—— 简单介绍Java 的内存泄漏

阅读目录 什么是内存泄漏? 为什么会发生内存泄漏? 如何预防内存泄漏? java最明显的一个优势就是它的内存管理机制.你只需简单创建对象,java的垃圾回收机制负责分配和释放内存.然而情况并不像想像的那么简单,因为在Java应用中经常发生内存泄漏. 本教程演示了什么是内存泄漏,为什么会发生内存泄漏以及如何预防内存泄漏. 回到顶部 什么是内存泄漏? 定义:如果对象在应用中不再被使用,但由于它们在其他地方被引用,垃圾回收却不能移除它们(这样就造成了很多内存不能释放,从而导致内存溢出的现象.译注).