English 中文(简体)
是否应当尽可能严格地扩大 j块的范围?
原标题:Should java try blocks be scoped as tightly as possible?

我曾被告知,在使用 Java鱼捕获机制方面有一些间接费用。 因此,虽然有必要把抑制例外情况的方法放在一个处理可能的例外情况的试金体内,但限制试金块的规模,只控制那些可能作出例外规定的行动,是好的做法。

我确信,这是一个明智的结论。

2. 审议处理特定文本文档的职能的下列两项执行情况。

即使第一笔费用的确产生了一些不必要的间接费用,但我发现,这样做非常容易。 不太清楚的是,从审视发言来看,这些例外究竟是多少,但这些意见清楚表明哪些发言是负责任的。

第二类比第一个阶段要长、复杂得多。 尤其是,首先的冰线对面的异构体必须适合readLine。 呼吁进入审判区。

在定义中可以提出多重例外的情况下处理例外情形的最佳做法是什么?

这部法律载有审判组内的所有处理法:

void processFile(File f)
{
  try
  {
    // construction of FileReader can throw FileNotFoundException
    BufferedReader in = new BufferedReader(new FileReader(f));

    // call of readLine can throw IOException
    String line;
    while ((line = in.readLine()) != null)
    {
      process(line);
    }
  }
  catch (FileNotFoundException ex)
  {
    handle(ex);
  }
  catch (IOException ex)
  {
    handle(ex);
  }
}

这只包含在审判中放弃例外情形的方法:

void processFile(File f)
{
  FileReader reader;
  try
  {
    reader = new FileReader(f);
  }
  catch (FileNotFoundException ex)
  {
    handle(ex);
    return;
  }

  BufferedReader in = new BufferedReader(reader);

  String line;
  while (true)
  {
    try
    {
      line = in.readLine();
    }
    catch (IOException ex)
    {
      handle(ex);
      break;
    }

    if (line == null)
    {
      break;
    }

    process(line);
  }
}
最佳回答

基本前提如下:false:。 <代码>try栏块的大小在性能上没有变化。 业绩受到实际在运行时间提出例外的影响,而这种例外与<代码>try的大小无关。

然而,将小块小块地保留下来,可能导致更好的方案。

你可以追捕恢复和继续工作的例外情况,或者说,你可以把这些例外情况简单地报告给打电话者(或向某个人报告,通过一些国际调查)。

在第一种情况下,你能够追回的失败往往是非常具体的,这导致了较小的<条码>:>try/code>区块。

在第二种情况下,如果出现例外情形,可以由另一个例外加以总结,并重新投递或展示给用户,那么小型<代码>try/code>就意味着你更确切地知道哪些运作失败,以及发出这一呼吁的高层环境。 这使你能够提出更具体的错误报告。

当然,这些准则有......例外(令人高兴!)。 例如,在某些情况下,非常具体的错误报告可能是一个安全问题。


了解<代码>try栏对汇编的代码有何影响可能是有益的。 它根本不改变汇编的指示! (当然,相应的<代码> 副渔获物 这样做,因为它与任何其他法典一样。

缩略语 该表有一系列来源指示、例外类型和目的地指示。 当提出例外时,本表将审查是否有一个对应的条目,以及包括提出例外指示的范围。 如果是,执行部门与相应的目的地数目相匹配。

必须认识到的是,除非需要,否则就没有征求过这个表格(而且不会影响业绩)。 (在装货舱时只需要少量的间接费用)

问题回答

我曾被告知,在使用 Java鱼捕获机制方面有一些间接费用。

绝对。 此外,还有电传的间接费用。 但是,你必须用一种方法把你的所有法典都放在一边。

不要浪费过早优化的horn,但重点应放在方便阅读、组织等。 语言构造很少影响系统组织和算法的选择。

对我来说,第一点是最容易阅读的。

页: 1 你应该考虑的唯一事情是,你能够合理处理例外情况,以及需要收回哪些资源(最后)。

这在最糟糕的时候还为时过早。 页: 1

“我们应当忘记效率不高,大约占时间的97%:过早优化是一切邪恶的根源”。

第2条方法没有什么好处。 毕竟,如果你能够成功地开立档案,而不是从档案中读取,那么你的计算机就存在一些错误。 因此,我们知道奥尼特是用英属法产生的,很少有用。 如你所知,对不同问题提出了不同的例外(File notFoundException, 等)。

只要你能把档案放在一个合乎逻辑的栏目上,即打开、阅读和在1个文件上封,即采用第一种方法。 它比阅读更为简单,特别是在处理国际海洋金属组织时,如果是的话,则用于审判副渔获物的间接费用的处理周期将极小。

在我看来,根据可能举出例外的具体法典将试块 around起来,使它更容易阅读。 您可能希望对每一错误发出不同的信息,并向用户发出指示,而这种指示将视发生错误的不同而有所不同。

然而,多数人提到的绩效问题与提出例外情况有关,而不是与试办本身有关。

换言之,只要你从未发现过错误,审判团就会明显影响业绩。 您认为,这只是另一个流动控制结构的试块,并通过你的法典造成分行的错误。 这是你想要避免的。

第二种方法将产生一种汇编错误,reader<>/code>可能尚未开始。 你们可以通过将其引入<代码>null<>/code>,而这只是意味着你可以获得国家空间局,而没有任何好处。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...