在学习数据库连接时看到try(){}结构,查了一下写在这里:

 1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.ResultSet;
 4 import java.sql.Statement;
 5
 6 /**
 7  * Created by BoGummyYoung on 2017/4/6.
 8  */
 9 public class ConnMySql
10 {
11     public static void main(String[] args) throws Exception
12     {
13         //1.加载驱动,使用反射知识,现在记住这么写
14         Class.forName("com.mysql.jdbc.Driver");
15         try(
16                 //2.使用DriverManager获取数据库连接
17                 //其中返回的Connection就代表了Java程序和数据库的连接
18                 //不同数据库的URL写法需要查驱动文档,用户名、密码由DBA分配
19                 Connection conn = DriverManager.getConnection(
20                         "jdbc:mysql://localhost:3306/select_test"
21                         ,"root","bogummy");
22                 //3.使用Connection来创建一个Statement对象
23                 Statement stmt = conn.createStatement();
24                 //4.执行SQL语句
25                 /*
26                 Statement 有三种执行SQL语句的方法:
27                 1.execute()可执行任何SQL语句——返回一个boolean值
28                   如果执行后第一个结果是ResultSet,则返回true,否则返回false
29                 2.executeQuery()执行select语句——返回查询到的结果集
30                 3.executeUpdate()用于执行DML语句——返回一个整数
31                   代表被SQL语句影响的记录条数
32                  */
33                 ResultSet rs = stmt.executeQuery("select s.*, teacher_name"
34                 +" from student_table s , teacher_table t"
35                 +" where t.teacher_id = s.java_teacher"))
36         {
37             //ResultSet有一系列的getXxx(列索引 | 列名)方法,用于获取记录指针
38             //指向行、列特定的值,不断地使用next()将记录指针下移一行
39             //如果移动之后记录指针依然指向有效行,则next()方法返回true
40             while(rs.next())
41             {
42                 System.out.println(rs.getInt(1) + "\t"
43                      + rs.getString(2) + "\t"
44                      + rs.getString(3) + "\t"
45                      + rs.getString(4) + "\t");
46             }
47         }
48     }
49 }

View Code

基本的异常处理:

 1 try
 2 {
 3        //业务实现代码
 4        ...
 5 }
 6 catch (Exception e)
 7 {
 8        alert 输入不合法
 9        goto retry
10 } 

如果执行try块里的业务逻辑代码时出现异常,系统自动生成一个异常对象,该异常对象被提交给Java运行时环境,这个过程被称为抛出(throw)异常。

通常情况下,如果try块被执行一次,则try块被执行一次,则try块后只有一个catch块会被执行,绝不可能有多个catch块被执行,除非在循环中使用了continue开始下一次循环,下一次循环又重新运行了try块,这才可能导致多个catch块被执行。

Java把所有非正常情况分成两种:异常(Exception)和错误(Error),它们都集成Throwable父类。

Error错误:一般是与虚拟机相关的问题,如系统崩溃、虚拟机错误、动态链接失败等,这种错误无法恢复或不可能补货,将导致应用程序终端,不会使用catch块来补货Error对象。

回收资源:try块里打开了一些物理资源(例如数据库连接、网络连接和磁盘文件等),这些物理资源都必须显示回收。

      1、finally回收

     

 1 try
 2 {
 3      //业务实现代码
 4 }
 5 catch (SubException e)
 6 {
 7      //异常处理块1
 8 }
 9 catch (SubException2 e)
10 {
11      //异常处理块2
12 }
13 ......
14 finally
15 {
16     //资源回收块
17 }

      2、Java7自动关闭资源的try语句

try关键字后面紧跟一队圆括号,圆括号可以声明、初始化一个或多个资源,此处的资源值得是那些必须在程序结束时显示关闭的资源(比如数据库连接、网络连接等),try语句在该语句结束时自动关闭这些资源。

try()
{
}

转载于:https://www.cnblogs.com/bolumiere/p/6681357.html

Java——异常处理,数据库连接相关推荐

  1. java异常处理试题答案_Java 面试题和答案 - (下)

    第一篇讨论了面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,本章主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servle ...

  2. Java提高篇——Java 异常处理

    异常的概念 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error:如果你用Syst ...

  3. 关于JAVA异常处理的20个最佳实践

    关于JAVA异常处理的20个最佳实践 在我们深入了解异常处理最佳实践的深层概念之前,让我们从一个最重要的概念开始,那就是理解在JAVA中有三种一般类型的可抛类: 检查性异常(checked excep ...

  4. 复习Java异常处理_异常分类_自定义异常_线程初步了解

    复习Java异常处理_异常分类_自定义异常_线程 主要内容 异常.线程 教学目标 第一章 异常 1.1 异常概念 异常,就是不正常的意思.在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点 ...

  5. java异常处理机制

    1.java异常处理机制 java的异常处理机制可以让程序具有极好的容错性,让程序更加健壮.当程序运行出现意外情形时,系 统会自动生成一个 Exception对象来通知程序,从而实现将"业务 ...

  6. Java异常处理的普遍误解

    [b]第一篇文章就上个转载的,哎--先学习再创新吧!做人要谦虚-[/b] 你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六 ...

  7. java异常处理怎么加_带你了解Java中的异常处理(上)

    当当当当当当,各位看官,好久不见,甚是想念. 今天我们来聊聊Java里的一个小妖精,那就是异常. 什么是异常?什么是异常处理? 异常嘛,顾名思义就是不正常,(逃),是Java程序运行时,发生的预料之外 ...

  8. java 提高篇_【Java入门提高篇】Day16 Java异常处理(上)

    当当当当当当,各位看官,好久不见,甚是想念. 今天我们来聊聊Java里的一个小妖精,那就是异常. 什么是异常?什么是异常处理? 异常嘛,顾名思义就是不正常,(逃),是Java程序运行时,发生的预料之外 ...

  9. Java异常处理(上)

    2019独角兽企业重金招聘Python工程师标准>>> 今天我们来聊聊Java里的一个小妖精,那就是异常. 什么是异常?什么是异常处理? 异常嘛,顾名思义就是不正常,(逃),是Jav ...

  10. Day16 Java异常处理

    什么是异常?什么是异常处理? 异常嘛,顾名思义就是不正常,(逃),是Java程序运行时,发生的预料之外的事情,它阻止了程序按照程序员的预期正常执行. 异常处理,应该说异常处理机制,就是专门用来制服这个 ...

最新文章

  1. Linux KVM与Xen的性能比较
  2. shellcode中动态定位API
  3. UVa 11729 - Commando War(贪心算法)
  4. oracle会话状态,oracle中会话的状态
  5. linux hadoop集群搭建,hadoop集群搭建
  6. Netty之自定义编码器MessageToMessageEncoder类
  7. SAP Spartacus UnitDetailsComponent的路由跟踪
  8. azure blob_使用Azure Blob存储托管Maven工件
  9. 内容库-管理介质和模板的最佳办法(转)
  10. python3.7读取csv文件_Python3 读取csv文件
  11. RobotStudio机器人运行路径的创建与仿真
  12. 什么是 Elasticsearch?一篇搞懂
  13. centos6.9安装MySql可视化管理工具
  14. 《近匠》专访WRTnode创始人罗未——开源硬件如何拥抱物联网
  15. C++/C补充知识点,数组,数组传参,二维数组传参打印三种发方法,正则表达式
  16. 机器人开发--有刷电机 与 无刷电机
  17. Leetcode 120 Triangle 三角形最小路径和
  18. 尺寸公DTAS差分析尺寸链计算软件:DTAS3D在车身公差分析中的应用案例
  19. Vue+SpringBoot的篮球社区平台
  20. 鼓励与信任让人变得更强大

热门文章

  1. 笔记本电脑怎么清理灰尘_笔记本电脑卡顿,运行慢,似中病毒,看这里 小白教你轻松搞定...
  2. mysql mysqldb_mysql模块mysqldb
  3. 机器学习建模商务合作
  4. 单片机C语言控制16*16LED显示屏,基于单片机的pwm控制16*16led点阵亮度调节怎么做啊,...
  5. TensorFlow by Google过拟合优化 Machine Learning Foundations: Ep #7 - Image augmentation and overfitting
  6. Mac OS开启黑暗模式
  7. 数据集:高考录取分数
  8. mysql设置report_host语法_mysqlreport使用详解
  9. KNN的k该如何选择
  10. 2020 恒生电子 面经