`
sgl124764903
  • 浏览: 170438 次
  • 性别: Icon_minigender_1
  • 来自: 邯郸
社区版块
存档分类
最新评论

探讨throw、throws 、try/catch 作用区别

    博客分类:
  • J2SE
SQL 
阅读更多
class Test {

	static void throwOne() throws SQLException, IllegalAccessException  {

		System.out.println("Inside throwOne.");

		throwTwo();
		throw new SQLException("sql");
	}
	
	static void throwTwo() throws IllegalAccessException  {

		System.out.println("Inside throwTwo.");
		throw new IllegalAccessException("demo");
	}
	
	public static void main(String args[]) {

		
				
					try {
						throwOne();
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (IllegalAccessException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				
				
		

	}
}

 throws 是抛出异常,try{...}catch{...}是捕获、处理异常
      在throwOne()中,会抛出SQLException,throwOne()不会处理SQLException,他会抛出,由调用她的main方法
来处理,在main方法中,由try语句块,捕获throwOne方法中抛出的异常,并由catch语句块进行处理。又,在throwOne
方法中调用了throwTwo方法,throwTwo抛出了IllegalAccessException 异常,这个IllegalAccessException 由调用他
的throwOne进行处理,而throwOne中没有对IllegalAccessException 进行处理的办法,不能处理,所以继续抛给调用他
的main方法,main会对IllegalAccessException 异常进行捕获和处理。
       上面的例子是只能捕获到IllegalAccessException 异常,而捕获不了SQLException的,因为throwTwo抛出异常后,

throwOne也奖抛出IllegalAccessException 异常,语句不继续执行,没有抛出SQLException。
static void throwTwo() throws IllegalAccessException  {

  System.out.println("Inside throwTwo.");
  //throw new IllegalAccessException("demo");
 }

 如果将throwTwo中的第二行代码注释掉,将不再抛出IllegalAccessException,从而SQLException将会被main捕获处理。

 

分享到:
评论

相关推荐

    JAVA中异常处理的WORD文档

    异常处理的一般格式,用法流程及关键字throw throws try catch finally exception等的使用

    C++中try throw catch异常处理的用法示例

    主要给大家介绍了关于C++中try throw catch异常处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用C++具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    JAVA 面向对象程序设计第5章 异常处理.pptx

    5.3 throws与throw ;5.3 throws与throw;5.3.1 使用throws声明抛出异常;5.3.1 使用throws声明抛出异常;5.3.1 使用throws声明抛出异常;5.3.1 使用throws声明抛出异常;5.3.2 使用throw抛出异常;5.3.2 使用throw抛出...

    北大青鸟JAVA培训教程-异 常

    学习目标 理解异常的概念 运用 try 块、catch 块和 finally 块处理异常 运用多重 catch 块处理异常 运用嵌套 try/catch 块处理异常 运用关键字 throw 和 throws 处理异常 运用JAVA编写和使用...

    java 异常处理练习

    java 异常处理练习 try catch finally throw throws的使用,包含代码及注释

    Java学习笔记

    异常的处理方式:throws和try-catch方法 try-catch处理方式: try{ //一个 (1)可能出现异常的语句 } catch(XxxException e /*捕获的异常*/){ //0或n个 (2)处理异常的代码 } finally{ //0或1个 (3)...

    JAVA异常入门(思维导图)

    1.异常的概念2.异常的分类3.捕获并处理异常(try……catch/finally)try……catch块 try……多catch块 try……catch/finally块 4.抛出异常throws5.自定义异常 自定义异常的来由 操作步骤 ...小结 throw与throws的区别

    方法抛出的异常处理 (2)修改UserDaoImp1类,要求用户id不能修改,修改则抛出异常 使用log4j输出日志信息

    (2)会使用throw和throws (3)会使用log4j记录日志 3.实践 实践一:使用try-catch进行异常处理 需求说明 (1)使用UserDaoImp1类的方法查找用户,并用User类的getUserInfo()方法输出用户信息 (2)使用一个不...

    java异常机制总结

    关键字:try、catch 用个形象的比喻,如果说throws相当于职业介绍中介的话,那try和catch就是一对倒霉的打工仔。很有意思,throws只是告诉编译器--方法可能产生的异常问题,然后把问题处理抛给try和catch。...

    Android自定义抛出异常的方法详解

    前言 在android开发过程中,我们经常遇到异常的...异常通常的处理方式有 throw/throws 以及 try-catch 两种。今天我们主要讲解throw/throws这一类的处理。 throw:抛出异常,一般是一个具体的异常。放置在方法体内

    Java异常是Java提供的一种识别及响应错误的一致性机制,Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序

    文章目录: ...4. throw 和 throws 的区别是什么? 5. final、finally、finalize 有什么区别? 6. NoClassDefFoundError 和 ClassNotFoundException 区别? 7. try-catch-finally 中哪个部分可以省略?

    黑马入学基础测试

    throw和throws有什么区别 try catch finally分别在什么情况下使用 求1000 的结果中包含多少个0 注:1000 1×2×3×4×5× ×999×1000 编写程序 打印1到100之内的整数 但数字中包含7的要跳过 例如:17 27 71 72 ...

    Java精华(免费版)

     相比之下,当你调用method2()时,则不需要把它放在try/catch程序块当中,因为它会抛出的exception不是checked exception,而是runtime exception。会抛出runtime exception的方法在定义时不必声明它会抛出...

    log4j输出日志信息

    实践三:使用throw和throws 需求说明 修改UserDaoImpl类的updateUser(User user)方法,要求如果用户id被修改,则: (1)不执行更新 (2)抛出一个Exception异常 (3)异常消息是“用户id不能修改” 实现思路及...

    【09-异常处理】

    •当前方法明确知道如何处理该异常,程序应该使用try...catch块来捕获该异常,然后在对应的catch 块中修改该异常。 •当前方法不知道如何处理这种异常,应该在定义该方法时声明抛出该异常。 Runtime异常的...

    RSA+bcpkix-jdk15.zip

    public static void saveKeyPair(KeyPair kp, String basePath) throws Exception { FileOutputStream fos = new FileOutputStream(StringUtils.isNotBlank(basePath) ? (basePath + RSAKeyStore) : RSAKeyStore);...

    DButil.java

    private static void init() throws IOException{ Properties prop = new Properties(); prop.load(DButil.class.getResourceAsStream("/db_config.properties")); info = new DButil(); info.driver = prop....

    C#-DES_SAME_JAVA-DES.zip

    public static String desEncrypt(String source, String desKey) throws Exception { try { // 从原始密匙数据创建DESKeySpec对象 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); ...

    ftp上传文本、移动文件、删除文件

    public void ftpUploadByText(String content ,String uploadDir,String ftpFileName) throws Exception{ try { ftpClient = this.login(); //创建目录 createDir(ftpClient,uploadDir); // 设置上传目录 这个...

    Servlet查询数据库案例--Query(java源码)

    // If anything goes wrong, log it, wrap the exception and re-throw it try { Class.forName(driverClassName); db = DriverManager.getConnection(url, username, password); } catch (Exception e) { ...

Global site tag (gtag.js) - Google Analytics