• Java——异常处理,数据库连接


    在学习数据库连接时看到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) + "	"
    43                      + rs.getString(2) + "	"
    44                      + rs.getString(3) + "	"
    45                      + rs.getString(4) + "	");
    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()
    {
    }
  • 相关阅读:
    只出现一次的数字
    SpringBoot整合Redis
    MFC 0误差画图
    模仿.NET的序列化机制
    求最大子数组
    让CFrameWnd派生类的对象响应鼠标消息的“变态”方法
    关于chm文件和'#'的惊人发现
    CxImage学习笔记
    C++指针系列
    MFC,C++ 截屏
  • 原文地址:https://www.cnblogs.com/bolumiere/p/6681357.html
Copyright © 2020-2023  润新知