Java常见的10个异常

article/2025/10/22 1:12:17

1、NullPointerException:

  空指针异常,当操作一个 null 对象的方法或属性时会抛出这个异常。是一个很头疼的异常,因为它是运行时异常,不需要手动捕获,但运行时碰到这个异常会中断程序。

2、OutOfMemoryError:

  内存溢出异常,这不是程序能控制的,当需要分配的对象的内存超出了当前最大的堆内存,需要调整堆内存大小(-Xmx)以及优化程序。

3、IOException:

  IO,即:Input、Output,我们在读写磁盘文件、网络内容的时候经常会生的一种异常,这种异常是受检查异常,需要进行手工捕获。

比如读写文件是需要抛出异常:

public int read() throws IOException
public void write(int b) throws IOException

4、FileNotFoundException:

  找不到文件异常,如果文件不存在就会抛出这种异常。

如定义输入输出文件流,文件不存在会报错:

public FileInputStream(File file) throws FileNotFoundException
public FileOutputStream(File file) throws FileNotFoundException

FileNotFoundException 其实是 IOException 的子类,同样是受检查异常,需要进行手工捕获。

5、ClassNotFoundException:

  类找不到异常,Java开发中经常遇到的一种异常,这是在加载类的时候抛出来的,即在类路径下不能加载指定的类。它是受检查异常,需要进行手工捕获。

public static <T> Class<T> getExistingClass(ClassLoader classLoader, String className) {try {return (Class<T>) Class.forName(className, true, classLoader);}catch (ClassNotFoundException e) {return null;}
}

6、ClassCastException:

  类转换异常,将一个不是该类的实例转换成这个类就会抛出这个异常。

如将一个数字强制转换成字符串就会报这个异常:

Object x = new Integer(0);
System.out.println((String)x);

它是运行时异常,不需要手工捕获。

7、NoSuchMethodException:

没有这个方法异常,一般发生在反射调用方法的时候:

public Method getMethod(String name, Class<?>... parameterTypes)throws NoSuchMethodException, SecurityException {checkMemberAccess(Member.PUBLIC, Reflection.getCallerClass(), true);Method method = getMethod0(name, parameterTypes, true);if (method == null) {throw new NoSuchMethodException(getName() + "." + name + argumentTypesToString(parameterTypes));}return method;
}

它是受检查异常,需要手工捕获。

8、IndexOutOfBoundsException:

索引越界异常,当操作一个字符串或者数组的时候经常遇到的异常。

如图所示,它是运行时异常,不需要手工捕获。

9、ArithmeticException:

算术异常,发生在数字的算术运算时的异常,如一个数字除以 0 就会报这个错。

此异常虽然是运行时异常,可以手工捕获抛出自定义的异常,如:

public static Timestamp from(Instant instant) {try {Timestamp stamp = new Timestamp(instant.getEpochSecond() * MILLIS_PER_SECOND);stamp.nanos = instant.getNano();return stamp;} catch (ArithmeticException ex) {throw new IllegalArgumentException(ex);}
}

10、SQLException:

SQL异常,发生在操作数据库时的异常。

如下面的获取数据库连接时:

public Connection getConnection() throws SQLException {if (getUser() == null) {return DriverManager.getConnection(url);} else {return DriverManager.getConnection(url, getUser(), getPassword());}
}

它是受检查异常,需要进行手工捕获。

转载于:https://www.cnblogs.com/jie-y/p/10775688.html


http://chatgpt.dhexx.cn/article/W370J4r0.shtml

相关文章

MFC程序

第一个MFC 界面程序 创建C 空项目 #include <afxwin.h> #include <atlimage.h> #include "resource.h"//继承一个模态框 每一个窗口 对应一个 类 class Login :public CDialog {private:HICON h_icon;//图标类public://构造函数 并且 调用 父类的构造函…

最全的基于MFC的ActiveX控件开发教程

转自&#xff1a;http://www.cnblogs.com/qguohog/archive/2013/01/22/2871805.html 浏览器插件之ActiveX开发&#xff08;一&#xff09; 一般的Web应用对于浏览器插件能不使用的建议尽量不使用&#xff0c;因为其涉及到安全问题以及影响用户安装&#xff08;或自动下载注册安…

MFC经验

MFC框架各部分指针获取方式: 记住&#xff0c;是获取指针 MFC消息流程图: string CString char* 的互相转换: string 转 CString   CString.Format("%s", string.c_str()); //用c_str()比data()好    char 转 CString   CString.Format("%s",…

C++ MFC程序入门

1. 选择“MFC应用程序”,命名后选下一步 2. 点“下一步” 3. 选择“基于对话框” 4. 仅勾选“主框架”

MFC系列 - 第一个MFC入门程序

MFC&#xff0c;多年开发和教学&#xff0c;这门课程&#xff0c;新课改决定将它砍掉&#xff0c;Qt也是我们的趋势&#xff0c;同时在我的Qt系列中详细讲解了Qt的系列教学。MFC虽然很古老&#xff0c;但是还是得佩服微软搞得这套框架&#xff0c;让一代又一代Windows程序员无不…

MFC ActiveX (ocx)控件的开发

前言 ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼&#xff0c;其中主要的技术是组件对象模型&#xff08;COM&#xff09;。 ActiveX控件是一种实现了一系列特定接口而使其在使用和外观上更象一个控件的COM组件。ActiveX控件这种技术涉及到了几乎所有的CO…

开发基于MFC的应用程序

开发基于MFC的应用程序 本篇将介绍如何开发基于MFC的应用程序。 具体步骤如下&#xff1a; 一&#xff1a;启用VS2019编辑器。 二&#xff1a;点击文件—>新建—>项目 三&#xff1a;MFC应用—>下一步 四&#xff1a;添加项目名称—>创建 五&#xff1a;选择基于对…

MFC简介

1.API Wndows操作系统为我们编写Windows应用程序提供的接口函数----API&#xff0c; //Windows中播放声音的API函数 //PlaySound需要的头文件和库文件 #include <mmsystem.h> #pragma comment(lib, "WINMM.LIB")BOOL PlaySound(LPCSTR pszSound, HMODULE hmo…

C++ mfc

以下是我从其他网站中学的内容&#xff0c;后有相应的网站学习链接地址&#xff0c;可供学习 1.选择菜单项File->New->Project&#xff0c;弹出“New Project”对话框。 2.左侧面板中Installed Templated的Visual C下选择MFC&#xff0c;中间窗口中选择MFC Application&a…

MFC教程

以下是我从其他网站中学的内容&#xff0c;后有相应的网站学习链接地址&#xff0c;可供学习 1.选择菜单项File->New->Project&#xff0c;弹出“New Project”对话框。 2.左侧面板中Installed Templated的Visual C下选择MFC&#xff0c;中间窗口中选择MFC Application&…

MFC简要介绍

一、概念 MFC(MicrosoftFoundationClasses)是微软基础类库的简称&#xff0c;是微软公司实现的一个c类库&#xff0c;主要封装了大部分的windows API函数&#xff0c;vc是 微软公司开发的c/c的集成开发环境&#xff0c;所谓集成开发环境&#xff0c;就是说利用它可以编辑&#…

MFC入门小项目

之前学习MFC的时候就是三天打鱼两天晒网&#xff0c;什么都不记&#xff0c;脑子也不转&#xff0c;完全是代码的搬运工。这次又要从头开始&#xff0c;索性写个博客了。截至目前断断续续更了三十篇blog&#xff0c;文笔依然如此拙劣&#xff0c;实属羞愧。技术尚且肤浅&#x…

C++ MFC简介

介绍MFC之前&#xff0c;需要先介绍几个MFC的概念。 1) API Windows操作系统提供了各种各样的函数&#xff0c;以方便我们开发Windows应用程序。这些程序是Windows操作系统提供给应用程序编程的接口&#xff08;Application Programming Interface&#xff09;,简称为API函数…

一、MFC介绍

一、什么是MFC MFC(全称:Microsoft Foundation Classes),微软基础类库。他封装了Windows应用程序的各种API以及相关机制的c++类库。 1、特点: (1)开发效率高 (2)程序执行效率高,相对C# (3)迁移性差(仅支持Windows)相对QT 二、MFC程序介绍 1、MFC类库常用头…

VS2015之博大精深的MFC项目开发(一)

VS2015之博大精深的MFC项目开发&#xff08;一&#xff09; 第一章 MFC基础篇1、MFC01-2&#xff1a;Win32程序资源管理1.1 讲解MessageBox&#xff08;在windows中如何输出&#xff09;1.2 给我们的软件插入一个图标1.3 对话框程序是如何建立的&#xff08;在windows中如何输入…

简单MFC程序开发-C++反编译肉鸡养成

目录 一、需求 二、程序效果 效果1&#xff1a;鼠标左键点击&#xff0c;显示坐标 效果2&#xff1a;按下按键&#xff0c;显示键值 三、实现过程 1.创建MFC程序 2.修改添加功能 2.1 修改标题 2.2 增加鼠标消息 2.3 增加键盘消息 2.4 显示文字函数 2.5 编译生成exe 一…

MFC应用程序开发教程1

以下为本人学习笔记 原视频&#xff1a;黑马程序员MFC教程 一、基础概念 SDK&#xff1a;软件开发工具包&#xff08;Software Development Kit&#xff09;&#xff0c;第三方工具API&#xff1a;Windows擦欧总系统提供给应用程序编程的接口窗口&#xff1a;一个Windows应用…

MFC程序开发概述

MFC程序开发概述 一&#xff1a;MFC类库的产生与发展 在Microsoft推出Windows 3.0之后&#xff0c;Windows操作系统受到越来越多的人的青睐。但是不久&#xff0c;开发人员开发撰写Windows 应用程序是重复&#xff0c;厌烦的过程&#xff0c;而且效率极低。因为每一个窗口都需…

Vim撤消和重做操作

While editing text files with vim we can make some little mistakes or want to revert to the previous states. In Microsoft Word there is features rich undo and revert functions. The similar undo and revert functionalities provided by vim too. 在用vim编辑文本…

idea如何使用git指令

&#xff08;1&#xff09;、打开setting,直接搜git (2)、点一下text 如果显示成功就不用管了&#xff0c;但如果失败就要重新设置一下目录&#xff1a; &#xff08;3&#xff09;、找到自己设置gitee ssh目录&#xff1a; 这里我们是不需要用.git对.idea进行管理的&#xff…