在写代码的时候我们经常需要新建异常,如throw new IllegalStateException("capacity is not less than 0");该异常不需要捕获(在方法前throws 该Exception)。但是有的异常如throw new IOException()需要捕获或抛出异常。主要因为java中异常有两类Runtime(运行时异常)和Checked(编译时异常)。(两种异常的说明见博客http://blog.sina.com.cn/s/blog_68205b190101it3x.html)。