`
coocle
  • 浏览: 21056 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

问一个关于如何设计处理多种异常原因的问题。

 
阅读更多
这个问题很简单,经常会遇到,可是我一直没有找到一个自己觉得很好的办法来处理。

当要插入一条记录是,当数据库中已经存在一条相同的记录时(比方说用户名规定不能相同),方法名是add,那么这个方法的定义是void好还是boolean好呢?

我觉得如何用void的话,为了返回错误信息就应该用抛出异常的方式,这样的话如果错误的原因有n种,那么就应当定义n个异常类型。

如果用boolean的话,只能反馈成功或失败,如果错误的原因可能有多种,好像不是很好。

要不然返回一个String类型的值,比方说success表示成功,failureByExist表示已有重复记录,failureByOther表示其它原因……这样搞起来其实和第一种方式差不多。

我还想知道,还有没有更好的方法来处理这类问题。

谢谢!
分享到:
评论
6 楼 robbin 2006-10-11  
用RuntimeException。

定义一个跟RuntimeException,然后各个子RuntimeException代表不同出错类型。

5 楼 ddandyy 2006-10-11  
http://www.iteye.com/topic/2038
4 楼 kj23 2006-10-11  
在异常里面加上个错误信息好了

这样只要一个exception就好了

我是这么想的,不知道有没有更好的办法
3 楼 coocle 2006-10-11  
BirdGu 写道
用Exception有什么不好吗?


也没觉得有什么不好,只是不知道有没有更好的而已。

其实就是有一点烦琐,一是要定义不少异常,二是要写不少try catch块,想看看有没有能减少些代码量的方法。
2 楼 socfield 2006-10-11  
看了你的问题,我也想了下,也无法确定哪个方法好。而我以前一直是用boolean的,不管为什么无法插入,只管插入是成功还是失败。

而确实需要知道为什么无法插入时,我在执行插入操作前做一系列的判断,
无法通过这些判断就无需插入了,这时也就知道什么原因无法插入了。

脑袋瓜子不好使,只要这样用,吸取有经验人士的指点。
1 楼 BirdGu 2006-10-11  
用Exception有什么不好吗?

相关推荐

    java试验报告之异常处理程序设计

    每个`catch`块可以捕获一种特定类型的异常,或者通过使用父类异常来捕获多种异常。 例如,在提供的代码中,有三个独立的`try-catch`块,分别处理字符串越界、数组越界和算术异常: 1. `...

    处理异常java程序实验报告

    异常处理是编程语言中一个非常重要的概念,它能够帮助开发者更好地控制程序运行过程中的非预期行为,提高程序的健壮性和稳定性。本实验将通过具体的案例(`Student`类)来探讨如何设计合理的异常处理逻辑。 #### ...

    Java异常框架设计

    6. **多catch块**:Java 7引入了多catch语句,允许在一个catch块中处理多种类型的异常,提高了代码的简洁性。 7. ** throws 关键字**:如果方法可能抛出检查型异常,但不处理它,可以在方法签名中使用`throws`...

    Java程序设计异常处理实例

    Java程序设计中的异常处理是编程过程中至关重要的一环,它确保了程序在遇到错误或异常情况时能够优雅地处理问题,而不是突然崩溃。异常处理的概念基于Java的异常类层次结构,这是Java语言的一个特色,旨在提高代码的...

    异常处理的解决方案

    在C#中,当程序遇到不可预见的问题时,会创建一个异常对象。这个对象包含了有关引发异常的原因和上下文的重要信息,帮助开发者追踪并解决问题。尽管可以创建自定义的异常类,但.NET框架已经提供了一系列预定义的异常...

    CAD:应用程序的组件中发生了未处理的异常

    在CAD(计算机辅助设计)领域,"应用程序的组件中发生了未处理的异常"是一个常见的错误提示,这通常意味着在运行CAD软件时,遇到了一个程序无法正常处理的问题,导致了系统崩溃或者异常中断。这种情况可能由多种因素...

    基于ARM的嵌入式系统程序开发要点(四)——异常处理机制的设计

    通过本文对ARM处理器异常处理机制的介绍,我们可以看出,一个高效且可靠的异常处理程序对于嵌入式系统来说至关重要。开发者应该深入理解ARM处理器的工作原理,并在此基础上精心设计异常处理策略,从而提升整个系统的...

    工作流系统异常处理实现方法

    结构化异常处理方法中的异常传播和处理机制为工作流系统的异常处理提供了一个很好的借鉴模式。这种TRY-CATCH-FINALLY模式的异常处理过程如下: - 在TRY模块中检测程序运行情况,如果发生错误,则抛出异常; - 程序...

    易语言线程结构异常处理.7z

    线程是程序执行的基本单位,而线程结构异常处理则是编程过程中非常重要的一个环节,特别是在多线程编程中。本文将深入探讨易语言中线程结构异常处理的相关知识点。 一、线程的概念与作用 线程是操作系统分配处理器...

    Java第10章 异常处理含源代码

    4. **多异常捕获**:Java 7引入了一种新的语法,可以在一个`catch`块中处理多种类型的异常,通过使用管道符`|`分隔异常类型。 5. **finally**:无论是否发生异常,`finally`块中的代码都会被执行,常用来清理资源,...

    熟悉而又陌生的异常处理

    当一个异常被另一个异常捕获并重新抛出时,原异常可以作为新异常的`cause`保存,形成异常链,便于追踪问题根源。 #### 面对异常的处理方式 - **向上抛出**:将异常向上抛给调用者处理。 - **捕获并处理**:在当前...

    异常处理的分数管理小系统

    系统设计了多种异常处理方式来应对可能出现的问题: - **输入错误**:如输入了不存在的学生姓名或课程名称,或者分数不在合法范围内。 - **缺少必要输入信息**:如录入成绩时没有填写学生姓名、课程名称或分数;查询...

    C_与C++中的异常处理.pdf

    综上所述,异常处理是C与C++程序设计中的一个重要主题。通过深入理解异常的生命阶段、异常处理的不同方法和技术,以及如何编写健壮且异常安全的代码,开发人员可以显著提高程序的质量和稳定性。

    关于异常的作业

    - C++支持多层捕获,可以在一个`catch`块中处理多种异常。 4. **C#中的异常处理**: - 结构与Java类似,使用try-catch-finally,但C#引入了`using`关键字,用于自动管理实现了`IDisposable`接口的对象,确保它们...

    模板与异常处理.

    虽然这个实验没有直接涉及异常处理,但它是面向对象程序设计中的一个重要方面。例如,当你尝试访问数组范围之外的元素或者执行可能导致错误的操作时,可以使用异常处理来捕获和处理这些错误。 总结来说,实验的主要...

    嵌入式Linux下C程序设计异常处理PPT学习教案.pptx

    在嵌入式Linux环境下进行C程序设计时,异常处理是一个重要的方面,因为它允许程序优雅地处理错误和不可预见的情况,防止程序崩溃。本教程主要涵盖了以下几个核心知识点: 1. **异常处理机制**:异常处理机制是C++...

    Java 银行取款 异常处理 计算器设计 图形用户界面设计 三合一详细实验报告

    当在`try`块中的代码抛出一个异常时,相应的`catch`块会被执行,用来处理异常。在实验中,自定义了一个异常`InsufficientFundsException`,当余额不足时抛出。这样做可以确保程序的正常运行,而不是因为错误而突然...

    Java语言程序设计:ch06 异常处理、递归和单体程序设计方法.ppt

    递归是另一个重要的编程概念,它是指函数或方法直接或间接地调用自身。在Java中,递归通常用于解决可以分解为相同子问题的问题,如树遍历、排序算法(如快速排序和归并排序)等。使用递归时,必须注意基本情况(base...

    业务异常提示处理 springboot+Assert(自定义断言)

    这允许我们在一个地方捕获并处理所有控制器层的异常,统一返回格式化的错误信息,同时记录日志,提高系统的异常处理能力。 5. **日志打印**:在业务异常发生时,详细的日志记录有助于定位问题。Spring Boot集成了...

    C程序设计《异常处理》.ppt

    【异常处理】是编程语言中的一种机制,用于处理程序运行时可能出现的错误或异常情况,以确保程序在遇到问题时能够优雅地恢复或至少提供有用的反馈,而不是简单地崩溃。在C++中,异常处理是通过三个关键部分来实现的...

Global site tag (gtag.js) - Google Analytics