java的try catch语句问题

java的try catch语句问题,第1张

肯定不会啦。

说一下try catch 和finally到底怎么回事!

try catch 成对出现的,一个try就一定要有catch,被try包裹的代码说明,如果这些代码中只要抛出异常的话,就会停止当前的代码运行,而跳到catch中,对于异常进行处理。

而finally呢,他是一个比较特殊的东西,finally中的代码无论出现说明状况都会运行到。即使出现异常。所以finally一般都是处理对资源的释放等 *** 作。

try{

go(); //假设在调用go方法的时候发生的异常

return “hello”; //这个return语句都是无法执行到的。

}catch(Exception e){

Systemoutprintln("发生的异常了!");

}finally{

Systemoutprintln("这里释放数据库连接!");

}

可以看到,当发生异常的时候,发生异常一下的代码都是无法执行到的。运行会跳到catch中,处理这个异常,之后进入finally中。

try{

go();

return “hello”; //这个return语句都是无法执行到的。

}catch(Exception e){

Systemoutprintln("发生的异常了!");

}finally{

Systemoutprintln("这里释放数据库连接!");

}

同样的代码,try中没有发生异常,所以catch中的代码是执行不到的,但是看到go方法下面的那个return了没,那么finally中的代码还会执行到吗?

答案是:能,一定会执行到。即使try中已经有了return。

你可以试一试!

现在稍稍明白了些吧!

不会影响数据

但是异常处理会稍微影响下程度性能,主要指速度上,可以忽略

但是你不try一下,你程序要是真出现了JSONException 异常就会宕掉

所有还是try下吧

首先执行

try{test();}

于是进入

try{

13 Systemoutprint("test ");

14 throw new RuntimeException();

15 }

16 catch(Exception ex){ Systemoutprint("exception ");}

17 }

于是输出test

然后throw new RuntimeException();就是抛出一个RuntimeException。。然后因为有catch 。。所以抛出的RuntimeException被catch了。。即到catch(Exception ex){ Systemoutprint("exception ");}

这了。。输出exception 。test方法结束这个方法里面抛出的异常他自己catch了。。没有抛出来。。所以 try{test();}没有抛异常。。所以执行 Systemoutprint("end ");输出end

所以就是这样了。。

至于ex 和e就是个名字而已。。

JDBC连接数据库

•创建一个以JDBC连接数据库的程序,包含7个步骤:

1、加载JDBC驱动程序:

在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),

这通过javalangClass类的静态方法forName(String className)实现。

例如:

try{

//加载MySql的驱动类

ClassforName("commysqljdbcDriver") ;

}catch(ClassNotFoundException e){

Systemoutprintln("找不到驱动程序类 ,加载驱动失败!");

eprintStackTrace() ;

}

成功加载后,会将Driver类的实例注册到DriverManager类中。

2、提供JDBC连接的URL

•连接URL定义了连接数据库时的协议、子协议、数据源标识。

•书写形式:协议:子协议:数据源标识

协议:在JDBC中总是以jdbc开始

子协议:是桥连接的驱动程序或是数据库管理系统名称。

数据源标识:标记找到数据库来源的地址与连接端口。

例如:(MySql的连接URL)

jdbc:mysql:

//localhost:3306/testuseUnicode=true&characterEncoding=gbk ;

useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为

gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。

3、创建数据库的连接

•要连接数据库,需要向javasqlDriverManager请求并获得Connection对象,

该对象就代表一个数据库的连接。

•使用DriverManager的getConnectin(String url , String username ,

String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和

密码来获得。

例如:

//连接MySql数据库,用户名和密码都是root

String url = "jdbc:mysql://localhost:3306/test" ;

String username = "root" ;

String password = "root" ;

try{

Connection con =

DriverManagergetConnection(url , username , password ) ;

}catch(SQLException se){

Systemoutprintln("数据库连接失败!");

seprintStackTrace() ;

}

4、创建一个Statement

•要执行SQL语句,必须获得javasqlStatement实例,Statement实例分为以下3

种类型:

1、执行静态SQL语句。通常通过Statement实例实现。

2、执行动态SQL语句。通常通过PreparedStatement实例实现。

3、执行数据库存储过程。通常通过CallableStatement实例实现。

具体的实现方式:

Statement stmt = concreateStatement() ;

PreparedStatement pstmt = conprepareStatement(sql) ;

CallableStatement cstmt =

conprepareCall("{CALL demoSp( , )}") ;

这段代码

1返回的值是5

2没有任何输出效果。

执行过程:

1首先执行main方法。调用静态函数getconn();

2定义变量conn

。初始值为8

3进入try

代码块。将conn的值改写成5过程中没有发生异常。跳过catch语句块。

4执行return语句,返回conn变量值,5。

5返回函数调用的地方,也就是主函数。

6运行结束。

代码要点解释:

使用try

catch

1无异常发生

包裹起来的代码块执行时与正常的语句块没有不同。

2发生异常

21try语句块中,从发生异常的哪行代码处断开,不再往下执行,跳转到catch语句块中

22程序会根据try中发生的异常的类型,选择最合适的catch语句块。按照catch的顺序向下选择,遇到适当的范围,就会进入catch块执行并跳出catch,注意catch语句可以有多个,但只执行一次。因此应当按照范围从小到大排列。

23try

catch语句执行完后会继续执行catch后面的语句,不会重新返回try中。

以上就是关于java的try catch语句问题全部的内容,包括:java的try catch语句问题、java 每写了一个json 都会叫我来try 一下@throws JSONException ,这样是什么原因会不会影响显示数据的、Java的try-catch等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10194877.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存