程序中碰到异常问题,我们到底是用try-catch还是用throws呢?到底什么时候用try-catch,什么时候用throws呢?
我的观点是:哪种处理方式对你程序更有利就用哪种!!!
try-catch是用来处理别人抛出的exception的,当你觉得你有足够的能力以及足够的信息处理该方法中可能出现的异常时,就使用它。而当你觉得你没有能力处理时,你就要首先声明该方法可能出现异常,抛出异常,将该异常交给调用者处理,当调用者也没能力处理时,它又一层一层往上抛,直到主函数解决异常为止。我们需要明白的是:throws抛出的异常最终都是在try-catch中解决的。这样就感觉有点像:老板和打工仔的关系。老板(throws)就只管分发任务,而就难为了try-catch了。
下面请看下我之前写的代码:
public void run(){
while(true){
readMsg();}
}
public void readMsg(){
try{
String message=brd.readLine();
}catch(Exception e)}
我直接在readMsg()方法中使用了try-catch,而没想过会给调用者带来什么影响,从这个例子明显可以看出:当服务器与客户机由于网络问题时,就会照成死循环,因为try-catch捕获到异常时,并不会终止下面程序的运行,所以就不会跳出循环,所以在此处用throws会好些。
当然,不管你使用其中的哪种处理方式,必须让它们各尽其职,让其有所担当,必须要基于你程序的健壮性去考虑,具体用哪种方式,需要具体分析。但要记住一句话:当你有能力解决异常时,就用try-catch,而没能力时,就throws吧!就像学习一样,当你有能力解决某个难题时,你就自己解决,而当你冥思苦想也不知道怎么办时,就去问你的同学或老师吧!
分享到:
相关推荐
`finally`块是可选的,无论`try`和`catch`块中的代码是否抛出异常,`finally`块里的代码都会被执行。这通常用于资源清理,如关闭文件流、网络连接等。即使在`try`或`catch`块中有return语句,`finally`块的代码也会...
`try-catch`块是Java异常处理的核心部分,它允许程序员在代码可能出现问题的地方进行异常捕获和处理,避免程序因未预期的错误而崩溃。下面我们将详细讨论`try-catch`捕获异常的实例。 首先,`try`块是包含可能抛出...
其中,throws和try...catch是Java中两种常用的异常处理方式,本文将对这两种方式进行比较和分析。 throws关键字 throws关键字是Java中用来声明异常的方法,表示方法可能会抛出异常。如果方法中可能会抛出异常,...
try-catch语句有两种处理异常的方式:用throws抛出异常、用try、catch捕获异常。try语句中的代码块如果发生异常,就会跳往catch语句中执行,不执行异常代码下面的代码。 一个try语句可以接多个catch语句,当有多个...
异常处理有五个关键字:try、catch、finally、throw和throws。在这其中,try-catch是最基本的结构,用于捕获并处理异常。 1. **try**:try块包含可能会抛出异常的代码。如果try块中的代码抛出了一个异常,那么控制...
C++中的异常处理机制是通过try、throw和catch三个关键字来实现的。try块用于包围可能抛出异常的代码,throw语句用于抛出异常,而catch块用于捕获和处理异常。 try块的语法如下: ``` try { 语句组 } ``` try块中的...
### Java异常处理的四大金刚:try、catch、finally和throw的深度解析 #### Java异常处理概述 异常处理机制是程序设计中的一个重要组成部分,它能够帮助程序员有效地管理程序运行过程中可能出现的各种错误情况。...
异常处理是通过五个关键字来实现的:`try`、`catch`、`finally`、`throw`和`throws`。在"异常-尝试-捕获-java"这个主题中,我们将深入探讨这些概念。 `try`块是异常处理的起点,它包含了可能会抛出异常的代码。如果...
"异常捕获与抛出的问题,什么时候应该try,什么时候应该throws" 在 Java 中,捕获异常和抛出异常是两种不同的机制,分别用于处理不同的异常场景。 捕获异常(try-catch) 捕获异常是指在方法内部使用 try-catch ...
Java异常处理机制及实现方法主要依赖于try、catch、finally、throw和throws这五个关键字。Try关键字后跟一个花括号栝起的代码块(即使该代码块只有一行也不能省略花括号),简称try块。Catch对应异常类型和代码块,...
首先,Java中的异常处理基于五个关键字:`try`、`catch`、`finally`、`throw`和`throws`。`try`块用于包含可能会抛出异常的代码,`catch`块用来捕获并处理这些异常,而`finally`块则确保无论是否发生异常,某些代码...
异常处理的其他关键字包括`try`, `catch`, 和`finally`。`try`块包含可能会抛出异常的代码,`catch`块用于捕获并处理异常,而`finally`块则确保在任何情况下都会执行的代码,如关闭资源。 在实际编程中,合理地使用...
在Java中,异常处理主要依赖于以下五个关键字:`try`, `catch`, `throw`, `throws`, 和 `finally`。其中,`throws`用于声明一个方法可能抛出的异常类型,从而让调用者能够做好相应的准备或者处理这些异常。 #### `...
Java的异常处理机制包括了`try`, `catch`, `finally`, `throw`, 和 `throws`五个关键字。`try`块包含可能会抛出异常的代码,`catch`块用于捕获并处理异常,`finally`块则包含不论是否发生异常都需要执行的代码。`...
在Java编程语言中,异常...- 正确使用`throws`和`throw`可以帮助开发者更好地控制异常流,增强程序的健壯性和可维护性。 理解这两个关键字的区别及其在异常处理中的角色对于编写健壯、可靠的Java应用程序至关重要。
在Java中,异常处理主要有两种方式:捕获异常(try-catch-finally)和声明抛出异常(throws)。本篇主要讨论第二种方式——声明抛出异常。 一、声明抛出异常类型(throws) 当一个方法在执行过程中可能会遇到某些...
1. **catch**:在try-catch语句块中用来捕获异常的关键词。当try块中的代码抛出异常时,控制权转移到与该异常匹配的第一个catch块。 2. **throw**:用于显式地抛出一个异常。通常用于抛出自定义异常或在运行时发现...
在上面的例子中,`testCheckedException()`方法声明它可能会抛出`IOException`,这样调用该方法的代码就必须处理这个异常,要么用`try-catch`块捕获,要么继续在方法签名中`throws`。 回到问题本身,`...
throw语句通常与try-catch-finally语句配套使用,要么与throws配套使用。 throw的主要作用是明确地抛出一个异常,告訴调用者该方法已经抛出了一个异常。例如,`if (a != b) throw new Exception3("自定义异常");`,...
Java关键字throw和throws的区别 Java是一种面向对象的编程语言,具有强大且灵活的特性。其中,throw和throws是两个重要的关键字,经常被用来处理异常情况。然而,许多初学者却对这两个关键字的区别感到困惑。下面,...