Delphi 异常类

----------------------------------------------------------------------
EExternal = class(Exception)

EExternalException = class(EExternal)    无效的异常码

整数计算异常
    EIntError = class(EExternal)                整数计算异常(基类)
        EDivByZero = class(EIntError)            整数除 0 溢出
        EIntOverFlow = class(EIntError)        整数溢出
        ERangeError = class(EIntError)        整数越界

浮点计算异常
    EMathError = class(EExternal)                浮点计算异常(基类)
        EInvalidArgument = class(EMathError)    参数超出范围
        EInvalidOp = class(EMathError)        无效浮点操作指令
        Eoverflow = class(EMathError)            浮点操作上溢
        Eunderflow = class(EMathError)        浮点操作下溢
        EZeroDivide = class(EMathError)        浮点计算除 0

EAccessViolation = class(EExternal)        非法内存访问

EPrivilege = class(EExternal)                处理器特权违规

EStackOverflow = class(EExternal) end deprecated    栈溢出

EControlC = class(EExternal)                用户中断

----------------------------------------------------------------------
    堆异常
EHeapException = class(Exception)
    EOutOfMemory  = class(EHeapException)        堆中没有足够的内存完成操作
        EOutOfResources = class(EOutOfMemory)
    EInvalidPointer = class(EHeapException)    试图访问一个堆外的指针

----------------------------------------------------------------------
    I/O异常
EInOutError = class(Exception)                DOS输入/输出错误

----------------------------------------------------------------------
    字符转换异常
EConvertError = class(Exception)                数字到字符串或字符串到数字转换错误

----------------------------------------------------------------------
    类型转换异常
EInvalidCast = class(Exception)                类型转换异常

----------------------------------------------------------------------
    哑异常
EAbort = class(Exception)                        调用 Abort 产生,不显示错误提示框

----------------------------------------------------------------------
    流异常
EStreamError = class(Exception)
    EFileStreamError = class(EStreamError)
        EFCreateError = class(EFileStreamError)    创建文件时发生错误
        EFOpenError = class(EFileStreamError)        打开文件时发生错误
    EFilerError = class(EStreamError)
        EReadError = class(EFilerError)                不能从文件流读取数据
        EWriteError = class(EFilerError)                不能写数据到文件流
        EClassNotFound = class(EFilerError)            窗口上的组件已被删除
        EInvalidImage = class(EFilerError)            不能读资源文件
        EMethodNotFound = class(EFilerError)

EResNotFound = class(Exception)            无法找到资源
EBitsError = class(Exception)                试图非法访问布尔型数组
EListError = class(Exception)                索引项超出链表范围
EStringListError = class(Exception)        字符串链表(list box)越界
EParserError = class(Exception)            文本到二进制流转换错误

----------------------------------------------------------------------
    通用组件异常
EInvalidOperation = class(Exception)    在组件上的非法操作。原因:试图对 Parent 属性为 nil 的组件进行一些需要窗口句柄的操作,试图对窗体拖放操作
EComponentError = class(Exception)        不能注册或重命名一个组件
EOutOfResources = class(EOutOfMemory)    资源不足。原因:操作系统没有多余的句柄可分配

Delphi 异常类

时间: 2024-10-28 06:58:09

Delphi 异常类的相关文章

转:delphi异常捕获try except语句 和 try finally语句用法

转:http://www.java123.net/v/936977.html      2015-06-24 09:27:48 一直写程序都没管他们,也尽量很少用,今天终于想把他给弄个明白,在网上找来,记下!主要是前面小部分,后面的是详细说明(很啰嗦!) 一.异常的来源 在Delphi的应用程序中,下列的情况都比较有可能产生异常. (1)文件处理 (2)内存分配 (3)Windows资源 (4)运行时创建对象和窗体 (5)硬件和操作系统冲突 二.异常的处理 (1)try…except…end;

delphi异常捕获try except语句 和 try finally语句用法

原文地址:delphi try except语句 和 try finally语句用法以及区别 一直写程序都没管他们,也尽量很少用,今天终于想把他给弄个明白,在网上找来,记下!主要是前面小部分,后面的是详细说明(很啰嗦!) 一.异常的来源 在Delphi的应用程序中,下列的情况都比较有可能产生异常. (1)文件处理 (2)内存分配 (3)Windows资源 (4)运行时创建对象和窗体 (5)硬件和操作系统冲突 二.异常的处理 (1)try-except-end; 在try体内的代码发生异常时,系统

Asp.net Core WebApi 全局异常类

通过全局异常类,所有程序中遇到的错误都会被拦截,并友好的返回结果. 1.自定义一个全局异常处理类中间件 using Microsoft.AspNetCore.Http; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Threading.Tasks; using Syst

java中异常类与类别

异常类的层次结构: 在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出).Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性,它们都在java.lang包下面. Error类标记了严重错误,类似内存溢出,虚拟机异常,等等,是不该出现的.这些错误表示故障发生于虚拟机自身.或者发生在虚拟机试图执行应用时,如Java虚拟机运行错误(Virtual MachineError).类定义错误(NoClassDefFoundError)等.这些错

借助backtrace和demangle实现异常类Exception

C++的异常类是没有栈痕迹的,如果需要获取栈痕迹,需要使用以下函数: #include <execinfo.h> int backtrace(void **buffer, int size); char **backtrace_symbols(void *const *buffer, int size); void backtrace_symbols_fd(void *const *buffer, int size, int fd); backtrace将当前程序的调用信息存储在buffer中

类的继承与super()的意义以即如何写一个正确的异常类

这些东西都是我看了许多名师课程和自己研究的成果,严禁转载,这里指出了如何正确的自己定义一个异常类并看一看sun写的java的源代码话题一:子类的构造器执行是否一定会伴随着父类的构造执行? 1.this()与super()不能共存2.如果不显示地调用this()和super();子类对象的创建是否一定执行父类的构造3.既然super()和this()不能共存,又说子类的构造执行一定会执行父类的构造,那么我让子类的构造执行this()是不是就不能在执行父类的构造? 4.如果我非不让父类的构造执行,我

java中常见的异常类

1. java.lang.nullpointerexception   这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等.对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了.数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空

C++异常类的定义和使用以及我对异常类的理解

异常类的作用就是在执行我们自己的某个功能函数出现意外情况时,为了方便查找错误出处,可以在意外发生时抛出异常(1).首先定义自己的异常类 可以直接定义也可以从标准异常类派生    class  CEGUIEXPORT Exception    {    public:        virtual ~Exception(void);        const String& getMessage(void) const  {return d_message;}        const Strin

通过寄生组合式继承创建js的异常类

最近项目中在做js的统一的异常处理,需要自定义异常类.理想的设计方案为:自定义一个异常错误类BaseError,继承自Error,然后再自定义若干个系统异常,例如用户取消异常.表单异常.网络异常,继承自BaseError.系统中,根据各个自定义异常做统一的异常处理,例如如果是用户发出取消操作指令,当前调用链则抛出一个用户取消异常,然后由统一异常处理捕获,先判断他是不是继承自BaseError,如果是则再根据事先定义好的处理方案处理. 为啥说这只是理想的设计方案呢?因为es5根本就没有提供js的继