Java provides programmers with capability to elegantly handle runtime errors.

1. Throwable has two subclasses: Exception and Error.

RuntimeException, Error and their subclasses are known as unchecked exceptions. All other exceptions are known as checked exceptions, meansing that the compiler forces the programmer to check and deal with them.

2. Handling Expections
(1) Declearing Exceptions
use throws keyword
public void myMethod() throws Exception1, Exception2, ...
(2) Throwing Exceptions
IllegaArgumentException ex = new IllegaArgumentException("Wrong Argument");
or
throw new IllegaArgumentException("Wrong Argument");
(3) Catching Exceptions
try {
statements;
}
catch (Exception1 exVar1) {
handler1;
}
catch (Exception2 exVar2) {
handler2;
}
...
Note that Exceptioni can't be subclass of Exceptionj (i
When handling exceptions, java.lang.Throwable.getMessage()/toString()/printStackTrace() are useful.
3. Rethrowing
try
{
access the database
}
catch (SQLException e)
{
throw new ServletException("database error: " + e.getMessage());
}
4. the finally clause
Graphics g = image.getGraphics();
try
{
// 1
code that might throw exceptions
// 2
}
catch (IOException e)
{
// 3
show error dialog
// 4
}
finally
{
// 5
g.dispose();
}
the code in the finally block is executed under all circumstances, regardless of whether an exception occures in the try block is caught.
5. Don't use a try-catch block to deal with simple, expected situations.
6. creating custon exception classes
7. Assertions
Assertions can be used to ensure program correctness and avoid logic errors.
assert assertion [: detailMessage];
detailMessage can a primitive-type or an Object value.
When an assertion statement is executed, Java evaluates the assertion. If it is false, an AssertionError will be thrown
By default, assertions are disabled at runtime. To enable them, use
java -ea AssertionDemo
Assertions can be selectively enabled or disabled at the class level or the package level.
java -ea:package1 -da:Class1 AssertionDemo
8. Don't use assertions for argument checking in public methods.Instead, exception handling is needed.
Use assertions to reaffirm assumption to increase your confidence in the programme's correctness.
if (number < 1) {
...
}
else if (number = 1) {
...
}
else assert false : number;
switch (month) {
case 1: ...; break;
case 2: ...; break;
...
case 12: ...; break;
default: assert false : "Invalid monthL " + month
}

posts - 403, comments - 310, trackbacks - 0, articles - 7
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2.13 Java notes - Exceptions and Assertions

Posted on 2007-04-22 20:23 ZelluX 阅读(174) 评论(0)  编辑  收藏 所属分类: OOP
2007-02-13 22:20:55
只有注册用户登录后才能发表评论。


网站导航: