Oracle培训(十二)——Core Java第十二章知识点总结——异常处理

本文深入解析Java中的异常概念、分类、处理方式及自定义异常,包括异常的传递、捕获和处理策略,以及方法覆盖中关于异常的要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Core Java第十二章知识点总结——异常处理


知识点预览

异常的概念

异常处理的概念

Java中异常的分类

Java中常见未检查异常

throw关键字

异常的传递

异常处理的方式(throws try…catch)

异常信息

方法覆盖中的异常

自定义异常


异常处理的概念

1. 异常的概念

一个软件正常运行时发生的意外情况

2. 异常处理

当发生异常时,采取补救措施,减少用户损失。


Java中的异常与异常分类


Exception的子类

1.非检查异常

RuntimeException的子类,可以避免,不需要必须处理

2. 检查异常

不可避免,必须进行异常处理,要不编译器报错


常见未检查异常


1.ArithmeticException


2.ArrayIndexOutOfBoundsException 数组下标越界异常


3. NullPointerException 空指针异常


4.ClassCastException类型转换异常

检查异常

Class.forName(“com.mysql.jdbc.Driver”);

throw关键字

1. throw关键字

产生异常(抛出异常)

2. throw异常对象

thrownew NullPointerException();

产生异常后以后的代码不会执行

异常的传递

沿方法调用链反向传递

main()

m1()

m2() throw newNullPointerException();

package chp12.ex07;

/**
 * 
 * @Author: Wentasy
 * @FullName: TestException.java
 * @Description: 异常的传递:沿方法调用反向传递
 * 打印结果: main 1
		   m1 1 
           m2 1
 * @Create Date: 2012-8-16
 */
public class TestException {
  public static void main(String args[]){
	  System.out.println("main 1");
	  m1();
	  System.out.println("main 2");
  }
  public static void m1(){
	  System.out.println("m1 1 ");
	  m2();
	  System.out.println("m1 2");
  }
  public static void m2(){
	  System.out.println("m2 1");
	  throw new NullPointerException();
	  //System.out.println("m2 2");//Unreachable code
  }
  
}

异常处理的方式

1.异常处理的第一种方式

a) throws声明处理异常

eg:餐馆退菜(往上推卸责任)

b) throws后面可以声明多个异常

c) throws 可以应用父类异常代替子类异常


2.异常处理的第二种方式

a) try…catch处理异常

try{

代码1

代码2

// FileNotFoundException 所捕获的异常的类型

}catch(FileNotFoundExceptione){

//异常处理的代码

}

b) 捕获:catch块的顺序

c)catch块的异常:由小往大

d)try…catch…finally异常处理方式

finally中的内容肯定执行

主要用于释放资源

方法覆盖中的异常


子类的覆盖方法不能比父类的被覆盖方法抛出更多的异常



拓展:方法覆盖的要求


package chp12.ex17;

import java.io.IOException;

/**
 * 
 * @Author: Wentasy
 * @FullName: TestSuper.java
 * @Description: 子类的覆盖方法不能比父类的被覆盖方法抛出更多的异常
 * @Create Date: 2012-8-16
 */
class Super{
	public void m1() throws Exception{
		
	}
}

/*
class Sub extends Super{
	public void m1() throws Exception{
		
	}
}
class Sub extends Super{
	public void m1(){
		
	}
}

*/

class Sub extends Super{
	@Override
	public void m1() throws IOException{
		
	}
}

public class TestSuper {

}


message属性与异常追踪

1. Exception/printStackTrace();

2. Exception类中定义了一个message属性可以用于存储异常消息,还提供了构造方法。

自定义异常


1. extends Exception检测异常:当产生时需要异常处理

package chp12.ex20;

/**
 * 
 * @Author: Wentasy
 * @FullName: TestException.java
 * @Description: 自定义异常 extends Exception
 * @Create Date: 2012-8-16
 */
class MyException extends Exception{
	public MyException(){
		
	}
	public MyException(String message){
		super(message);
	}
}


public class TestException {
  public static void main(String args[]){
	  
  }
  public static void m1() throws MyException{
	  throw new MyException();
  }
  
}

2. extends RuntimeException 不需要强制处理

package chp12.ex21;

/**
 * 
 * @Author: Wentasy
 * @FullName: TestException.java
 * @Description: 自定义异常:extends RuntimeException
 * @Create Date: 2012-8-16
 */
class MyException extends RuntimeException{
	public MyException(){
		
	}
	public MyException(String message){
		super(message);
	}
}

public class TestException {
   public static void main(String args[]){
	 
   }
   
   public static void m1(){
	   throw new MyException();//可以不用处理 因为是非检查型异常
   }
}

【MVC图书管理系统】是一个基于Java Web开发的项目,它运用了MVC(Model-View-Controller)架构模式,旨在实现对图书数据的高效管理。在这个系统中,用户可以通过网页界面进行图书信息的添加、删除、修改和查询等操作,所有这些功能都依赖于后端与数据库的交互。下面我们将详细探讨涉及的各个知识点。 **MVC架构模式** 是一种将业务逻辑、数据和用户界面分离的设计模式。在本项目中,Model负责处理数据和业务逻辑,View负责展示数据,Controller则作为两者之间的桥梁,接收用户的请求并转发给相应的Model进行处理,最后更新View显示结果。这种分离使得代码更加模块化,易于维护和扩展。 **JDBC(Java Database Connectivity)** 是Java语言中用于访问数据库的标准API。在本系统中,JDBC被用来建立Java程序与MySQL数据库之间的连接,执行SQL语句来实现数据的增删改查操作。开发者需要编写SQL语句,通过Connection、Statement或PreparedStatement对象来执行,并使用ResultSet处理查询结果。 **MySQL** 是一个广泛使用的开源关系型数据库管理系统。在本项目中,MySQL作为存储图书信息的数据仓库,提供稳定且高效的数据库服务。开发者需要设置数据库表结构,与Java代码中的数据模型相对应,以满足系统的数据需求。 课程设计通常包含以下步骤: 1. **需求分析**:明确系统功能,如用户登录、图书分类、搜索、借阅等。 2. **数据库设计**:创建图书、用户等表,定义字段及关系,编写SQL脚本。 3. **模型设计**:在Java中创建实体类,对应数据库表,实现业务逻辑。 4. **视图设计**:使用HTML、CSS和JavaScript构建用户界面,展示数据和交互元素。 5. **控制器实现**:编写Servlet或Controller类,处理HTTP请求,调用模型方法并更新视图。 6. **部署与测试**:将项目部署到服务器,进行功能测试和性能优化。 本项目涉及到的技术还包括: - **Servlet**:Java Web的核心组件,用于接收和响应HTTP请求。 - **JSP(JavaServer Pages)**:动态网页技术,可以嵌入Java代码,方便视图层的开发。 - **HTML/CSS/JavaScript**:网页前端技术,用于构建用户交互界面。 - **Eclipse/IntelliJ IDEA**:常用的Java开发IDE,支持Web项目的创建和调试。 - **Tomcat/WebLogic**:应用服务器,运行和部署Java Web应用。 在实际开发过程中,还需要考虑安全性、性能优化、异常处理等问题,确保系统的稳定性和用户体验。通过这个项目,开发者可以深入理解MVC架构,掌握JDBC与数据库的交互,以及Java Web应用的开发流程。 这是我要使用的资源包的简介,你觉得为了完成这个图书管理系统的部署,我需要安装配置哪些软件和环境
最新发布
05-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值