java try 的用法_java try(){}catch(){}自动释放资源及用法

java语言中try(){}catch(){}的用法介绍。介绍了通常的try…catch的用法以及 try-with-resources 的用法。

1、try{} catch(){}的用法

通常try/catch模块的用法是:

try{

// statement here

}catch(Exception e){

// deal with the exception

}finally {

// release the resources

}

先执行语句,包括打开关闭文件流等,然后在finally模块里关闭数据流。

但是最近碰到这样一种用法

try (InputStream fis = new FileInputStream(source);

OutputStream fos = new FileOutputStream(target)){

byte[] buf = new byte[1024];

int i;

while ((i = fis.read(buf)) != -1) {

fos.write(buf, 0, i);

}

}

catch (Exception e) {

e.printStackTrace();

}

这是一种 try-with-resources 的用法,称为 ARM (Automatic Resource Management) 自动资源管理。

2、try-with-resources的用法try(){}catch(){}

其基本语法是:

try(Resource resource = xxx) //可指定多个资源

{

//work with resource

}

其用法是:try(Resource resource = xxx)数据流xxx会在 try 执行完毕后自动被关闭,前提是,这些可关闭的资源必须实现 java.lang.AutoCloseable 接口。

例如:

InputStream is = null;

OutputStream os = null;

try {

//...

} catch (IOException e) {

//...

}finally{

try {

if(os!=null){

os.close();

}

if(is!=null){

is.close();

}

} catch (IOException e2) {

//...

}

}

而用try-with-resources用法则简单的多:

try(

InputStream is = new FileInputStream("...");

OutputStream os = new FileOutputStream("...");

){

//...

}catch (IOException e) {

//...

}

其中的InputStream和OutputStream数据流会在try 执行完后自动关闭。一下简单多了。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Java 中,try catch 用于处理异常。 语法结构如下: ``` try { // 代码块,可能会抛出异常的代码 } catch (ExceptionType1 e) { // 异常处理代码,处理 ExceptionType1 类型的异常 } catch (ExceptionType2 e) { // 异常处理代码,处理 ExceptionType2 类型的异常 } catch (ExceptionType3 e) { // 异常处理代码,处理 ExceptionType3 类型的异常 } ... ``` 当 try 代码块中的代码执行时,如果抛出异常,就会执行与之对应的 catch 代码块中的异常处理代码。如果异常的类型与 catch 代码块中声明的异常类型相匹配,就会执行这个 catch 代码块;否则,程序会继续往下执行,寻找与之匹配的 catch 代码块。 例如,下面的代码演示了如何处理一个可能会抛出 IOException 异常的代码: ``` import java.io.IOException; public class Main { public static void main(String[] args) { try { // 代码块,可能会抛出 IOException 异常的代码 } catch (IOException e) { // 异常处理代码,处理 IOException 异常 } } } ``` 你也可以使用 finally 块来在 try catch 代码块之后执行一些代码,无论是否发生了异常。例如: ``` import java.io.IOException; public class Main { public static void main(String[] args) { try { // 代码块,可能会抛 ### 回答2: Java中的try-catch语句用于异常处理。在使用try-catch语句时,我们将可能引发异常的代码放在try块中,并在catch块中处理异常。 try块中的代码会被逐行执行,如果在执行过程中发生了异常,就会跳入与该异常类型匹配的catch块中进行处理。catch块中可以写多个,每个catch块可以处理不同类型的异常,也可以只使用一个catch块处理多种异常类型,只要它们在继承层次结构中能够得到匹配。 当一个异常被捕获后,程序将会继续执行catch块中的代码,然后继续执行try-catch语句后面的代码,而不会出现程序终止的情况。 在catch块中,可以使用异常对象获取有关异常的信息,例如异常的类型、原因、堆栈轨迹等。 除了catch块外,还可以在try语句后面加上finally块。finally块中的代码无论是否发生异常都会被执行,常用于资源释放,例如关闭打开的文件、数据库连接等。 以下是一个简单的try-catch语句的示例: try { //可能引发异常的代码 } catch (ExceptionType1 e1) { //处理ExceptionType1类型的异常 } catch (ExceptionType2 e2) { //处理ExceptionType2类型的异常 } finally { //无论是否发生异常,都会执行的代码 } 总的来说,Java中的try-catch语句提供了一种机制来处理代码中可能发生异常的情况,能够帮助我们编写更健壮和可靠的程序。 ### 回答3: Java中的try-catch用法是为了处理异常。在程序执行过程中,可能会出现一些预料之外的情况,这些情况被称为异常,如果不进行处理,程序可能会崩溃或产生不可预料的结果。 try-catch语句块用来捕获可能发生的异常,并对其进行处理。try块用来包含可能会产生异常的代码,当try块中的代码执行出现异常时,异常将被抛出。catch块则用来捕获这个异常,并提供相应的处理逻辑。 catch块可以捕获特定类型的异常,也可以捕获所有类型的异常。捕获特定类型的异常时,可以指定异常的类型,如果产生的异常符合指定的类型,则执行该catch块中的代码;捕获所有类型的异常时,可以使用catch(Exception e)来捕获所有的异常。 在catch块中,可以根据具体的需求进行异常处理。常见的处理方式包括打印异常信息、记录日志、重新抛出异常、返回默认值等。 除了try-catch语句块外,还可以使用finally块来执行一些必要的清理工作,不论是否发生异常,finally块中的代码都会被执行。 使用try-catch能够有效地处理程序中的异常情况,提高程序的健壮性和可靠性。正确地处理异常可以使程序流程更加清晰,增加代码的可读性和可维护性。不过在使用try-catch时,也要注意不要过度使用,只捕获和处理需要处理的异常,避免处理无效的异常。另外,正确地处理异常有助于程序的性能优化,避免不必要的损耗。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值