25个答案 按时间排序 按投票排序
-
和这个差不多
我开发项目的时候习惯有一个BaseAction里边有对异常的真正处理。
其他的Action都要继承这个BaseAction,异常一直往上层抛出。
这样做感觉很清晰,整个系统只有一个总的异常处理。中间的类只需要输出点LOG,不用对异常作特别处理,抛出即可。
DangDang0701 (初级程序员) 2010-01-112010年1月11日 21:43
-
异常,分两种情况:
1、考虑不周全导致的系统异常。
2、考虑周全,为了一定的目的抛出异常。
那我们什么时候需要异常控制呢,
针对第一种情况,你无法预计什么条件下会出现什么样的异常,可以用try{}catch(){}来完成异常捕捉,接下来就是考虑捕捉了之后要干嘛,你可以记录日志,便于分析原因,也可以再封装结果对象,返回给用户可识别的提示信息。
针对第二种情况,你或许是为了简化代码逻辑,或许是为了控制代码健壮性,anyway,都是让程序不要再继续往下走了,或者让程序绕道而行。比如输入信息校验,或者断言等等。再如果你需要对特定异常进行判断处理,可以采用自定义异常,如果这还满足不了你的需求,你还可以定义一个excptionCode(可以是枚举实现)。这样就很好的描述异常信息。
如果你希望外部程序必须捕获你的异常,可以直接继承Excption,如果不需要,则可以继承RuntimeExcption。
总之,异常是为了让你更好的优化你的代码,这个需要时间自己去体会。2010年1月11日 18:16
-
异常:分为编译时异常和运行时异常。
编译时异常:必须由我们程序员来处理,处理的方式有两种:一种是向外抛,另一种是捕捉该异常。不过在一般情况下应当是等到程序运行结束才抛出所有异常。在java中有些异常在程序中必须被捕捉的,例如:SQLException等,如果遇到这种情况我们可以抛出其Exception异常。
运行异常:我们可以不作处理,也即是编译器不可以检查的异常。这种异常一般是由于我们程序本身逻辑存在问题所导致。如果不作任何处理程序一当遇到该异常,程序立即停止。运行时异常也是异常类一个子类,在程序中我们可以抛出Exception异常,这样就可以保证程序可以顺利运行到结束。
在WEB 开发中,如何处理异常:
(1)后台的异常应尽可能向外抛,避免程序中途停止
(2)应当在struts的action中收集程序所有异常
不过在大多数情况先我们程序时不会出现问题,如果出现问题,我们不仅仅要将异常打印到后台,而且还要将异常打印到用户系统页面,让用户知道系统已经出现问题,及时联系开发公司。2010年1月11日 17:52
-
我开发项目的时候习惯有一个BaseAction里边有对异常的真正处理。
其他的Action都要继承这个BaseAction,异常一直往上层抛出。
这样做感觉很清晰,整个系统只有一个总的异常处理。中间的类只需要输出点LOG,不用对异常作特别处理,抛出即可。2010年1月11日 17:47
-
要理清java异常的处理机制,首先应该理清异常和错误的结构
Throwable
----Error
----Exception
---- RuntimeException
---- 非运行时异常
Error错误是不可恢复错误,一般不用去捕获,出错了程序就会终止
简单说一下异常:
异常是需要进行处理的,一般分两种,一个是编译异常,一个是非编译异常
非运行时异常属于编译异常,运行时异常属于非编译异常
下面说说编译异常与非编译异常的差别和不同的处理方式
1、编译异常顾名思义就是由java文件编译为class文件时,必须要捕获的异常,如不捕获则就编译不过去。现在应该知道为什么我们在eclipse里编写文件处理或JDBC程序时,必须要捕获,否则冒红的原因了吧。就是因为SQLException、IOExceptioin是非运行时异常,必须在编译前就要捕获。
2、非编译异常:运行时异常就是其中一种。只要是继承RuntimeException的子异常,在编译前是不用捕获的,为什么呢,因为这类异常是一些人为因素造成的,不应该让程序去捕获,而应该在编写代码时,就要人为的去避免异常发生。比如数组越界异常,就是运行时异常,这个我们应该在编写代码时,就要确保不出现错误。编译器也不会知道程序运行时会不会出现,所以编译时不对他进行处理。
下面是所举异常的源码定义:
public class SQLException extends java.lang.Exception
pubic class IOException extends Exception
public class IndexOutOfBoundsException extends RuntimeException
public class RuntimeException extends Exception
2010年1月11日 17:23
-
1、尽量使用一种或几种自定义异常,所有异常在不同的层次捕获,然后转换成此自定义异常。
例如:xxxx项目,自定义XXXXException或XXXXServiceException
然后所有的service方法都throws此异常
2、在一个统一的出口处理此异常,转成优化的方式显示,同时记录到日志等地方。2010年1月11日 17:11
-
1.如果代码编译通过,怎么判断是否需要抛出异常!
如果是Eclipse 编译通过了说明你该处理的异常都已经处理了。你可以通过 Throwable e 根据实际情况来判断异常的类型。如果是你需要抛出的类型。则抛出。不是的话 自己看咋个把它处理掉就OK了
2.给出常见的异常处理机制,避免产生Unchecked Exception!
在一些经常出现异常的地方抽取一些公共的方法出来做为Util类。如果出现异常则使用默认值来处理。2010年1月11日 16:26
-
理论上讲,代码编译通过,就意味着checked exception都被捕获了。
剩下了的一般都是unchecked exception,而且可以说,如果有unchecked exception发生,基本上意味你代码处理除了问题。比如说数组越界等类似的问题。2010年1月07日 09:20
-
1.你可以定义方法的时候加上显式的需要抛出的异常
public returnType methodName(args) throws YourException{ ... }
像楼上所说的那样,如果异常是继承RuntimeException,则不需要强制你写try catch语句来保证抛出的异常得到处理。如果继承的是Exception,则一定需要try catch语句保证异常得到处理,或者在该方法中显式声明抛出该异常。
2.通常如果你的方法显式声明了需要抛出的异常,编译器会提示你需要使用try catch语句来处理这些异常或者声明抛出,否则会有编译错误。对于有些异常是继承RuntimeException的,这些异常是引发unchecked Exception的主要原因,编译器不会提示,但是你也可以使用try catch来捕捉处理。通常API文档都会提示可能会抛出的runtimeException,那在写代码的时候就要小心处理了。2009年12月31日 11:00
-
异常有已检查异常和未检查异常, 继承RuntimeException的都为未检查异常, 这种异常编译器并不做检查, 而已检查异常编译器必须要求你抛出或捕获. 有一个基本原则就是未检查异常都是可以事先预知并能通过代码来排除的, 而已检查异常不能完全通过代码来排除. 所以在处理异常时不要什么异常都捕获, 或者捕获后封装为未检查异常再抛出, 这样会把许多异常信息给忽略掉, 一般原则是谁导致引发的异常谁来处理. 但最为一些框架需要对异常不但捕获而且要用Throwable进行捕获, 它必须保证在发生异常的情况框架不能死掉或导致其它问题, 但在捕获的同时会对异常进行很好的处理. 以使被执行者能获取异常信息.
2009年12月30日 10:25
-
1.在你的方法中只抛出你想抛出的或者你无法处理的异常
2.在你的方法中只处理你能处理或你想处理的异常
3.在调用的最高层catch exception,如果是基于struts的,可以定义一个类似拦截器的东东来吃掉没有处理的异常。2009年12月29日 17:54
-
我的方法是从最底层一直往外抛,然后在action层捕捉,要么返回信息,要么跳转到指定页面。
struts1是有一个异常配置的,可以配置指定异常的指定处理方式。
STRUTS2可以采用拦截器的方式来,这样代码里就看不到try{}catch了。就是说ACTION也继续THROW,然后拦截器【AOP编程】执行的时候try catch一下。2009年12月28日 15:08
-
楼上说的有道理
如果要捕获异常就用try { //容易出现异常的代码 } catch(exception e) { //异常处理 } finally { //总是执行的 }
2009年12月28日 10:37
-
我的经验是:
当你在编写代码的时候,如果可以用逻辑判断避免出现异常(如String为空,或对象为空)就优先使用逻辑判断。
如果是逻辑难以判断的就用try catch(Integer.valueOf("我传字符串是肯定会出异常的")就需要try catch一下)。2009年12月28日 10:29
-
try { ...... } catch (Throwable e) { }
如果你不须要捕获具体的异常对其处理的话,这样就可以捕获所有的异常了。
如果代码编译通过,一般比较容易出现空指针,数组越界的异常你可以在可能出现这种情况的地方捕获就行了。2009年12月28日 09:52
相关推荐
- Java的异常处理是通过`try-catch-finally`语句块来实现的。`try`用于捕获可能出现的异常,`catch`用于处理捕获到的异常,而`finally`则确保无论是否发生异常,某些代码总会被执行,如资源清理。 7. **批量导入...
3. **异常处理**:Java提供了异常处理机制,通过try-catch-finally语句块来捕获和处理程序运行时可能出现的错误。了解并正确使用异常处理可以提高代码的健壮性。 4. **集合框架**:Java集合框架包含各种数据结构,...
4. **异常处理**: 学习Java的异常处理机制,包括try-catch-finally结构,以及如何自定义异常。 5. **数组和集合**: 数组是存储固定数量同类型元素的数据结构,而集合(Collection和Map)则提供了动态存储和操作对象...
这包括但不限于Java基础语法、面向对象编程思想、集合框架、多线程编程、异常处理等内容。只有建立了完整的知识框架,才能更好地理解和运用Java语言。 #### 3. 实践出真知 理论学习固然重要,但更重要的是实践。...
11. **Chapter 11 - 异常处理**:讲述异常的概念,如何捕获和处理异常,以及自定义异常。 12. **Chapter 12 - 集合框架**:涵盖ArrayList、LinkedList、HashMap等集合类的使用,以及泛型和迭代器。 13. **Chapter ...
比如继承、封装、抽象类、接口、多态、重载、覆盖,以及Java异常处理机制。对于没有面向对象语言背景的人来说,理解这些概念可能需要花费更多的时间和精力。 接下来,深入学习Java集合框架,包括ArrayList、...
4. 异常处理:学习如何捕获和处理程序中的异常,提高代码健壮性。 5. 输入/输出(I/O):掌握文件操作和网络通信,如File类、Socket编程等。 6. 多线程:理解并发编程基础,学习Thread、synchronized关键字以及并发...
而编写代码时,异常处理和接口的使用是Java编程中的关键技能,它们有助于增强程序的稳定性和可维护性。 实习期间,团队合作和沟通技巧同样重要。在遇到困难时,与同学共同探讨、向老师请教是解决问题的有效方式。...
1. **知识点繁多**:Java语言本身包含了大量的概念和技术点,例如类、接口、异常处理等。这些复杂的知识点使得初学者难以快速掌握。 2. **理论与实践脱节**:很多学习材料偏重于理论讲解,缺乏实际应用场景的案例...
此外,培训通常还会涵盖异常处理、集合框架、IO流、多线程、网络编程等关键领域,这些都是实际开发中不可或缺的部分。 在实训过程中,学员们不仅强化了理论知识,还提升了实践能力。实训项目使学员有机会将课堂上学...
8. **异常处理**:理解try-catch-finally语句块,学习如何捕获和处理运行时错误。 9. **输入/输出流**:I/O流的基本概念,文件读写,以及标准输入输出的使用。 10. **集合框架**:ArrayList、LinkedList、HashSet...
在实际开发中,还需要考虑异常处理、安全性、性能优化等方面的问题。对于初学者,可以通过SSH搭建一个简单的用户登录注册系统来实践这些知识。如果在学习过程中遇到问题,可以参考相关文档或向有经验的开发者请教。...
3. **异常处理**:Java通过异常处理机制来捕获和处理程序运行时可能出现的错误。实习生需要学会如何正确使用try-catch语句块,以及何时抛出异常。 4. **接口与抽象类**:接口定义了类的行为规范,抽象类则提供部分...
Java编程基础,包括语法、类和对象的概念、异常处理、IO流、多线程、网络编程等核心知识。 2. 掌握Java Swing库的使用,用于创建图形用户界面(GUI),实现桌面应用功能。 3. 熟悉Applet程序的开发,理解其在网络...
实习期间,我主要围绕Java的基础知识进行学习,包括类型、变量、接口、输入输出流、异常处理和GUI界面设计。 在实训初期,我们主要学习了Java的基本语法和概念,如数据类型、变量声明和使用。理解这些基础概念是...
在论文中,作者提到将Java理论知识应用于实际项目,这涵盖了Java的基础语法、类与对象、异常处理、多线程、集合框架、IO流等核心概念。在开发企业网站管理系统时,可能会涉及到数据库交互,因此Java的JDBC(Java ...
- Java 中的异常处理机制允许程序在运行时捕获并处理错误。 - 常见的运行时异常包括 `NullPointerException`、`ArrayIndexOutOfBoundsException` 等。 通过上述知识点的学习与理解,初学者能够建立起对 Java 编程...
首先,Java基础知识部分可能包括语法特性,如变量声明、数据类型、运算符、流程控制(如if语句、switch语句、循环结构)、异常处理等。考生需要熟悉这些基本概念并能熟练编写相关代码。 其次,面向对象编程是Java的...
7. **错误处理和异常处理**:为了提高程序的健壮性,需要对可能出现的错误和异常进行妥善处理,比如输入验证错误、数据库操作失败等。 8. **安全性**:考虑到系统涉及敏感的个人信息,应实施安全措施,如使用HTTPS...