Try catch and finally

Finally block should executed whether try goes successfully or the program goes to catch.
Am I right?
I have this kind of code here using BEA WLS:
     * @jpf:action
     * @jpf:forward name="success" path="reportView.jsp"
     * @jpf:forward name="error" path="../error.jsp"
    protected Forward viewReport(ViewReportForm vrForm)
        try{
            return new Forward("success");
        catch(Exception e){
            log.error(this,e);
            e.printStackTrace();
            getRequest().setAttribute("errorMessage",e.getMessage());
            return new Forward("error");
        finally
            try
                if (conn!=null)
                    conn.close();
                if (rs!=null){
                    rs.close();
                if (stmt!=null)
                    stmt.close();
                conn=null;
                rs=null;
                stmt=null;
                array=null;
                params=null;
                query=null;
                q_where_pp=null;
                html=null;
                *System.out.println("Testing finally block");*
            catch(Exception e)
                log.error(e);
                e.printStackTrace();
    }Note that I put System.out.println("Testing finally block"); to test whether finally block gets executed.
When try goes fine which is return to page reportView.jsp the finally will be executed.
But when it goes wrong which goes to error.jsp the finally block never print out the sentence.
Which make me confuse, why finally block never executed after catch block.
Anyone could help me?

pramudya81 wrote:
finally
try
if (conn!=null)
conn.close();
if (rs!=null){
rs.close();
if (stmt!=null)
stmt.close();
conn=null;
rs=null;
stmt=null;
array=null;
params=null;
query=null;
q_where_pp=null;
html=null;
*System.out.println("Testing finally block");*
catch(Exception e)
log.error(e);
e.printStackTrace();
First of all, your finally is after a bunch of statements, so if any of those statements throw an exception, your println() will never be executed. Finally does not mean that everything in the finally block gets executed even if they throw exceptions, it means execution will begin in the finally block before leaving the method try/catch.
Second, closing connections, result sets, and statements can all throw exceptions (you know this because you put a try/catch block around it). And they're pretty much guaranteed to throw an exception in this case: Closing a connection closes all the statements associated with it (and closing a statement will close the resultset associated with it). So when you try to close the resultset, it's already closed. This should've showed up in your logs. You need to re-order your closes, and put each close in its own try/catch block.

Similar Messages

  • Try/catch and 'cannot resolve symbol'

    I am relatively new to java programming and something has me puzzled...
    Why do I get a 'cannot resolve symbol' message when I include a variable definition in a try/catch section. When I put it/them before the 'try' statement it compiles as expected. How are statements inside a try compiled differently than those outside?
    try {
        StringBuffer pageBuffer = new StringBuffer();
        String inputLine;
        BufferedReader in = new BufferedReader(
           new InputStreamReader( theURL.openStream() ) );
        while ((inputLine = in.readLine()) != null) {
             System.out.println(inputLine);
            pageBuffer.append(inputLine);
        in.close();
    } catch (Exception ignored) {}C:\Projects\WebExplorer\PageVisitor.java:142: cannot resolve symbol
    symbol : variable pageBuffer
    location: class PageVisitor
         return pageBuffer.toString();
    Paul

    A try block is just like any other block delimited by {...} in that all variables declared inside it are local to that block. I.e. they are not visible or usable anywhere outside it. Your pageBuffer variable, for example, is a local variable that can only be used inside the try-block in which it is declared.
    Your obvious solution, knowing that, is to declare the variables outside the try and catch blocks. Remember to initialize them (even to null), otherwise the compiler will complain about variables that may not have been initialized.

  • While, try/catch and continue

    Hello,
    i've got a while-loop which executes some statements. some of them are within a try-catch block.
    imagine like this:
    while (channelsIT.hasNext()) {
       RSSChannel channel = channelsIT.next();
       RSSChannelReader reader = new RSSChannelReader(channel.getStrRSSUrl());
       try {
          reader.connect();
       } catch (Exception e) {
          log.error("Fehler beim Lesen eines RSS-Channels", e);
          continue;
       Collection items = reader.getChannelItems();
    }As you may see, it makes no sense in this case to continue the loop after reader.connect() failed. for that, I tried to use the continue statement, but the code interrupts after the logging and the application failes.
    the workaround is to put all the code of the while loop into the try-block, but for that seems to be a bad solution.
    while (channelsIT.hasNext()) {
       RSSChannel channel = channelsIT.next();
       RSSChannelReader reader = new RSSChannelReader(channel.getStrRSSUrl());
       try {
          reader.connect();               
          Collection items = reader.getChannelItems();
       } catch (Exception e) {
          log.error("Fehler beim Lesen eines RSS-Channels", e);
          continue;
    }so why does my first code not work properly?
    Thank you for any suggestions.

    Then I misunderstood you.
    public class Test {
      public static void main(String args[]) {
        int i = -1;
        while (i < 10) {
          int j = i % 2;
          i++;
          try {
            System.out.print(i / j);
          } catch (Exception e) {
            System.out.println(i + " skipped");
            continue;
          System.out.println(" - after");
    }This writes "after" if there's no exception and skipped if there is one:
    0 - after
    1 skipped
    2 - after
    3 skipped
    4 - after
    5 skipped
    6 - after
    7 skipped
    8 - after
    9 skipped
    10 - after
    So it behaves exactly as you want it to, and so should your first code. Is it the exact code you posted, including "catch (Exception"?

  • Basic (try catch finally)

    Try catch and finally were thing i recently neglected to use unless my ide made me, but i was just reading on how to use them and I have a question about something i couldn't find an answer for:
    objects you declare in try statements e.g.:
    try{
    BufferedReader br=...;
    are only available in the scope of that try statement. Is this bad programming style or would "br" be automatically destroyed after the try statement is exited?

    Well, define "dispose". If there's some method on the object that you need to call to clean that object up, you'll have to declare the variable outside the try block and then call it:
    Something it;
    try {
      it = SomethingFactory.createHeavyObject();
      it.doSomething(); // may throw Horse exception
      it.doSomethingElse();
    } catch (Horse e) {
      e.printStackTrace();
    } finally {
      it.releaseResources();
      it = null;  // only necessary if there will be a long time before "it" goes out of scope
                  // and even then maybe not if releaseResources() took care of the heavy stuff
    }On the other hand, you should never have to do this:
    Something it;
    try {
      it = new Something();
      it.doSomething(); // may throw Horse exception
    } catch (Horse e) {
      e.printStackTrace();
    } finally {
      it = null;
    }Instead you could just do:
    try {
      Something it = new Something();
      it.doSomething(); // may throw Horse exception
    } catch (Horse e) {
      e.printStackTrace();

  • RAISERROR with Try/Catch does not exit after exception in catch block

    I am trying to propogate an error from within my proc out to the caller.
    In the attached example I have 2 sets of try catch blocks.
    I raiserror in the first
    catch the error and then raiserror again. (I expect to exit)
    I do not expect :
    to get to print 'post test'
    to get to second try block.
    but this does not exit, instead the code flows as per 2 runs.
    I do not understand the reason for the flows, as it seems counterintuitive to be raising an error but then still print following exceptions. I cannot seem to find any references that explains this behaviour.
     running tests together results
    print '-------------------------------------------------------'
    print 'test 15'
    exec test_raiseerror 15
    print '-------------------------------------------------------'
    print 'test 16'
    exec test_raiseerror 16
    print '-------------------------------------------------------'
    print 'test 17'
    exec test_raiseerror 17
    print '-------------------------------------------------------'
    print 'test 18'
    exec test_raiseerror 18
    print '-------------------------------------------------------'
    'RESULTS'
    test 15
    error number provided: 15
    Msg 50000, Level 15, State 1, Procedure test_raiseerror, Line 21
    name hello 15
    post test
    15
    Msg 50000, Level 15, State 1, Procedure test_raiseerror, Line 37
    name hello 2 15
    post test2
    test 16
    error number provided: 16
    Msg 50000, Level 16, State 1, Procedure test_raiseerror, Line 21
    name hello 16
    post test
    16
    Msg 50000, Level 16, State 1, Procedure test_raiseerror, Line 37
    name hello 2 16
    post test2
    test 17
    error number provided: 17
    post test
    17
    post test2
    test 18
    error number provided: 18
    post test
    18
    post test2
    Msg 50000, Level 17, State 1, Procedure test_raiseerror, Line 21
    name hello 17
    Msg 50000, Level 17, State 1, Procedure test_raiseerror, Line 37
    name hello 2 17
    Msg 50000, Level 18, State 1, Procedure test_raiseerror, Line 21
    name hello 18
    Msg 50000, Level 18, State 1, Procedure test_raiseerror, Line 37
    name hello 2 18
    run tests seperately
    exec test_raiseerror 15
    error number provided: 15
    RESULTS 15
    Msg 50000, Level 15, State 1, Procedure test_raiseerror, Line 21
    name hello 15
    post test
    15
    Msg 50000, Level 15, State 1, Procedure test_raiseerror, Line 37
    name hello 2 15
    post test2
    exec test_raiseerror 16
    RESULTS 16
    error number provided: 16
    Msg 50000, Level 16, State 1, Procedure test_raiseerror, Line 21
    name hello 16
    post test
    16
    Msg 50000, Level 16, State 1, Procedure test_raiseerror, Line 37
    name hello 2 16
    post test2
    exec test_raiseerror 17
    RESULTS 17
    error number provided: 17
    post test
    17
    post test2
    Msg 50000, Level 17, State 1, Procedure test_raiseerror, Line 21
    name hello 17
    Msg 50000, Level 17, State 1, Procedure test_raiseerror, Line 37
    name hello 2 17
    exec test_raiseerror 18
    RESULTS 18
    error number provided: 18
    post test
    18
    post test2
    Msg 50000, Level 18, State 1, Procedure test_raiseerror, Line 21
    name hello 18
    Msg 50000, Level 18, State 1, Procedure test_raiseerror, Line 37
    name hello 2 18
     CODEBLOCK:
    if object_id('test_raiseerror','P') is not null
    drop proc test_raiseerror
    go
    create proc test_raiseerror(@id as int) as
    begin
    begin try
    declare @name varchar(20)
    select @name = 'hello'
    raiserror('name %s %d',@id,1,@name,@id)
    print 'next'
    end try
    begin catch
    declare @errormessage nvarchar(4000)
    declare @errornum int
    select @errormessage = error_message()
    , @errornum = error_severity()
    print 'error number provided: ' + convert(varchar(2),@errornum)
    raiserror(@errormessage, @errornum,1)
    print 'post test'
    end catch
    begin try
    select @name = 'hello 2'
    raiserror('name %s %d', @id,1,@name, @id)
    end try
    begin catch
    select @errormessage = error_message()
    , @errornum = error_severity()
    print @errornum
    raiserror(@errormessage, @errornum,1)
    print 'post test2'
    end catch
    end
    go
    sqlserver 2008 & 2008 R2

    There is a Connect that describes a similiar complaint.  But basically a raiserror inside a catch block does not terminate the procedure, it will continue with any additional code in the CATCH and FINALLY unless it hits a return statement.
    http://connect.microsoft.com/SQLServer/feedback/details/275308/have-raiserror-work-with-xact-abort

  • Catch vs finally

    hi
    I was experimenting with catch and finally to see
    which block runs first, and as excepted finally block
    runs finally. The VM spec says, if there is a return/throw
    in catch, finally is run just before returning/throwing. So
    the catch block is run fully. What if the finally block
    throws an exception, like in the following code.
    What happened to the 'Exception from catch'?
    public class Finally {
          //This is to test which of catch and finally blocks is run first
          // and also certain caveats of them
          public static void main (String [] args) throws Exception{
                try {
         test();
         System.out.println ("The function ended");
                }catch (Exception e) {
                      System.out.println ("Exception in test: "  + e.getMessage());
         static  public void test() throws Exception {
                     int i = 2;
                try {
                      i ++;
                     throw new Exception ("I am thrown now");
                }catch (Exception e) {
                      System.out.println (e.getMessage());
                      System.out.println ("I am caught now");
                      System.out.println ("i = " + i ++);
                      throw new Exception ("Exception from catch");
                finally {
                      System.out.println ("finally, I am given a chance");
                      System.out.println ("i = " + i );
                      throw new Exception ("Exception from finally");
    }

    If the finally block has a return statement or throws an exception, then that's what happens instead of any previous return or throws. So if your catchblock rethrows an exception and the finally block returns 42, then the whole try-catch-finally block will return 42 rather than rethrowing the exception.

  • Yet another Try Catch question. Iterating through a ForEach loop

    Confused on error handling in a Powershell ForEach loop. I’m looping through a list of registry keys, attempting
     to open each one. If it succeeds, I do a bunch of stuff. If it fails, I want to skip to the next iteration.
    If I was doing It in VBScript I’d do this:
    For Each Thing In colThings
    Open Thing
    If Err.Number <> 0 Then
    “oops”
    Else
    Do stuff
    Do stuff
    Do stuff
    End If
    Next
    This is what I came up with in PowerShell. It seems to work, but just doesn’t seem powershell-ish. There must be a better way to use the catch output than just creating a $return variable and assigning it success or fail?
    ForEach ($subKeyName in $subKeyNames)
    try{$subKey = $baseKey.OpenSubKey("$subKeyName")}
    catch{$return = "error" }
    If($return -eq "error" )
    “Oops”
    Else
    Do stuff
    Do stuff
    Do Stuff

     
    I totally get what you're saying about formatting. I don't' have any habits yet, since I've only been working in Powershell since... well, what time is it now?
    Unfortunately, It Has Been Decreed that we are no longer to use VBScript for any engineering solutions at work, so my 15 years experience in it now needs to be transitioned over asap. I don't have the luxury of crawling before I run. I'm trying not to be
    frustrated, but it's like an English major waking up one day and being told "You must now speak French exclusively. Here's a book."
    The Do Stuff example of my ForEach loop is about 50 lines of code involving matching values in subkeys of this registry key with another and collecting output. I tried wrapping the whole thing in a try section based on some examples, but it seemed odd, that's
    why I'm asking. I'm used to tightly focused error handling at the point where an error may occur.
    In this example I'm only interested in whether or not I can open the subkey (it exists, but I may not have permission). If I can't, there's no point in continuing with this iteration of the loop, I want to skip to the next one. So why include all the "Do
    Stuff" in the the try section? From a readability viewpoint, it doesn't seem helpful.
    Also, there may be more error handling deeper in the code. If I then put that in a try/catch, and then something else inside that, now I have nested try/catches mixed in with nested if/elses, all wrapped in a For loop.
    Again, I can see how it works logically, but for readability not so much, and having all these braces 50 lines apart to match up is giving me eye strain :).
    It sounds like David is agreeing with jrv, that putting the entire ForEach loop code into a try/catch is the conventional way to do it. I guess it makes as much sense as putting it all in an If-else-Endif, and I just need to adjust my paradigm.
    But if not, my specific question was more along the lines of, is there a built in way to tell that the catch section has been executed, rather than me using it to populate an arbitrary variable and then read it? In VBScript, you execute something, and the
    next line, you check the Err.number. I wasn't sure if you could do that with a try/catch.

  • How to know if a UDF form is opened else then using a TRY CATCH ?

    I'm looking for any way to find out if the UDF form is visible
    else then trying to open it in a try catch and if it's not sending a key.  This if very ugly, slow and not really my kind.
    I tried to iterate through all the forms in SBO_Application.Forms but it's not there.  All I see is the main form
    I just need to make sure the UDF form is visible when Inventory form is loaded so I can put a value in one of the UDF
    If there's a better way I'm buying it

    Hi Marc,
    Rather than putting your data in the UDF in the UDF side form, you can add a control to the main form (during the load event of the form) and bind this to the UDF through the DBDataSource that is already available on the main form. This means that you don't need to worry about whether the UDF form is open or not because you can always read or write to your UDF data from the main form.
    Alternatively, the UDF form TypeEx property is always the same as the main form but with a minus sign in front. Therefore, if you know the TypeEx and FormTypeCount of the main form then you can use the GetForm method of the Application object to get the UDF form.
    oForm = _sboApp.Forms.GetForm("-" + oMainForm.TypeEx, oMainForm.TypeCount);
    You'd still need a try/catch around this and if it raises an error then activate the 6913 menu to open the UDF form.
    Kind Regards,
    Owen

  • PowerShell - Remote Sessions, Try{}Catch{}, ErrorActionPreference

    Hello everyone,
    I am encountering issues with Remote Exchange sessions and was wondering what I am overlooking/over-complicating.
    I am running Windows 8.1/PowerShell 4.0. Reason I mention this is because of this blog post:
    http://blogs.msdn.com/b/powershell/archive/2013/10/25/windows-management-framework-4-0-is-now-available.aspx
    The IMPORTANT section noted that Exchange 2007, 2010, 2013 are not compatible with WMF 4.0 and didn't know if that is good/bad since the OS is using PowerShell 4.0.
    1 - I am connecting to Office 365 utilizing the following:
    http://help.outlook.com/en-us/140/cc952755.aspx
    2 - I have the following function:
    function Get-SomeMailboxStatistics {
    [CmdletBinding()]
    param(
    [Parameter(Mandatory=$True,
    ValueFromPipeline=$True,
    HelpMessage="Identities or aliases to gather Exchange Statistics from.")]
    [Alias('Username')]
    [string[]]$Identity,
    [string]$ErrorLog = 'C:\MbxStatsErrorLog.txt',
    [switch]$LogErrors
    BEGIN{}
    PROCESS{
    Write-Verbose "Beginning..."
    foreach ($alias in $Identity)
    Write-Verbose "Gathering info for $alias."
    #trap [ManagementObjectNotFoundException] {$everythingOK = $false}
    Try{
    # $ErrorActionPreference = "Stop" # Testing purposes.
    $everythingOK = $true
    $gms = Get-MailboxStatistics -Identity $alias -ErrorAction Stop # http://technet.microsoft.com/library/hh847884.aspx
    # Trap {
    # throw $_
    Catch{
    $everythingOK = $false
    Write-Warning "Lookup on $alias failed."
    if ($LogErrors -eq $true){
    $alias | Out-File $ErrorLog -Append
    Write-Warning "Logged $alias to $ErrorLog."
    if ($everythingOK){
    $props = @{};
    $props = @{'Alias' = $alias;
    'DisplayName' = $gms.DisplayName;
    'TotalItemSizeInBytes' = ($gms.TotalItemSize.Value.ToString() -replace "(.*\()|,| [a-z]*\)", "");
    'TotalDeletedItemSizeInBytes' = ($gms.TotalDeletedItemSize.Value.ToString() -replace "(.*\()|,| [a-z]*\)", "");
    'MailboxType' = $gms.MailboxType; };
    $obj = New-Object -TypeName PSObject -Property $props
    Write-Output $obj
    END{}
    Example: Get-SomeMailboxStatistics -Identity GoodAlias1,GoodAlias2,FailAlias,GoodAlias3 -LogErrors -ErrorLog 'C:\Logs\MbxStatsErrors.txt' -Verbose
    The pipeline terminates on FailAlias, and then throws an error when it tries to pass the FailAlias to the $props.
    $gms | Get-Member on a good alias is:
    TypeName: Deserialized.Microsoft.Exchange.Management.MapiTasks.Presentation.MailboxStatistics
    I have tried setting $ErrorActionPreference = 'Stop' in various sections and think I am scope-creeping/not catching the Error where I should be or PowerShell is flat-out ignoring something.
    I have tried additional nested if{}else{} in the Try{}Catch{} and cannot get it to behave as expected.
    I have also tried to Trap{[ManagementObjectNotFoundException]} and Throw exception in various portions without success.
    However, setting $ErrorActionPreference = 'Stop' in the session window (from default of 'Continue') the script behaves as I expected it to, when encountering a non-existant mailbox, it logs the error. It doesn't seem to have issues executing on Windows 8.0/PowerShell
    3.0.
    I have encountered numerous blog/forum posts with no definitive answer/resolution.
    Based some of my tests around some suggestions from this thread:
    http://stackoverflow.com/questions/1142211/try-catch-does-not-seem-to-have-an-effect
    Extras:
    http://blogs.technet.com/b/heyscriptingguy/archive/2010/03/09/hey-scripting-guy-march-9-2010.aspxhttp://stackoverflow.com/questions/19553278/powershell-catch-non-terminating-errors-with-silentlycontinue
    http://stackoverflow.com/questions/15545429/erroractionpreference-and-erroraction-silentlycontinue-for-get-pssessionconfigur
    http://social.technet.microsoft.com/Forums/scriptcenter/en-US/228a3329-f564-4daa-ad70-6d869b912246/non-terminating-error-turned-into-a-terminating-error?forum=winserverpowershell

    This is not the only problem with WMF 4.0
    When you use -ErrorAction 'SilentlyContinue', $Error object is not set.
    [PS]
    $Error.Clear()
    [PS]
    $objContact =
    Get-Contact -Identity
    'CN=unknown contact,OU=Users,DC=mydomain,DC=mytopdomain'
    -ErrorAction 'Stop'
    The operation couldn't be performed because object 'mytopdomain.mydomain/Users/unknown contact' couldn't be found on 'mydc.mydomain.mytopdomain'.
        + CategoryInfo          : NotSpecified: (:) [Get-Contact], ManagementObjectNotFoundException   
    + FullyQualifiedErrorId : 482E7079,Microsoft.Exchange.Management.RecipientTasks.GetContact
        + PSComputerName        : myexchange.mydomain.mytopdomain
    [PS]
    $Error.Count
    1
    [PS]
    $Error.Clear()
    [PS]
    $objContact =
    Get-Contact -Identity
    'CN=unknown contact,OU=Users,DC=mydomain,DC=mytopdomain'
    -ErrorAction 'SilentlyContinue'
    [PS]
    $Error.Count
    0
    That's why since Exchange 2010 SP3 Rollup 5 (i suppose when reading Exchange Supportability Matrix), The Exchange Management Shell link has been updated to use Powershell 2.0
    Before 2010 SP3 Rollup 5
    C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto"
    After 2010 SP3 Rollup 5
    C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -version 2.0 -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto"

  • About the finally block of the try catch.

    I know that finally block contains the code that will be executed in any condition of the try catch.
    However, I think it is unneccessary, since the stack after the try catch stack will be executed any way.
    Any one can help?
    for example
    try{
    System.in.read();
    catch(Exception e){}
    finally
    { System.out.println("does this matter?");}and
    try{
    System.in.read();
    catch(Exception e){}
    System.out.println("does this matter?");

    However, I think it is unneccessary, since the stackafter the try catch
    stack will be executed any way.That does assume that you catch and handle the error
    appropriately.
    Of course this is valid as well, and demonstrates
    when you would WANT a finally clause.
    Connection con = null;
    Statement stmt = null;
    try{
    con  = Database.getConnection();
    stmt = con.createStatement("Select * from dual");
    // maybe something throws an exception here?
    finally{
    if (stmt != null){
    stmt.close();
    if (con != null){
    con.close();
    The finally block here might throw a null pointer exception itself use
    null!=stmt null!=stmt

  • Need HELP with finally() in nested try-catch

    hi,
    i am having trouble with deadlock and wondering if its due to an incorrect use of finally nested within multiple try catch blocks.
    is the inner finally() required, will the outer one get executed, or will the two finally() statements get executed...??
    the deadlock happens very infrequently to accurately test.
    try {
         try {
         catch (InterruptedException e) {
              return;
    catch {
    finally {
         //will this be executed be executed by the inner throw statement
    }or is an inner finally required
    try {
         try {
         catch (InterruptedException e) {
              return;
         //this finally is NEW....is it needed!
         finally {
              //will this be executed. will both get executed
    catch {
    finally {
         //will this be executed also, or completely ignored if exception throw from inner try/catch
    }

    inner/outer, which one is executed first?
    more info pls.I mean, really. How hard is it to find out for yourself?
    public class TestFinally {
        public static void main(String[] args) {
            try {
                try {
                    throw new RuntimeException("Whatever");
                } finally {
                    System.out.println("Inner finally");
            } finally {
                System.out.println("Outer finally");
    }I'll leave it to your imagination as to how to modify this class to confirm the answers to your original question.

  • Doubt try/catch/finally

    Hi all
    Say i have following program:
    try {
    line1.   functioncall()
    line2.    .....
    line3.    .....
    catch(..) {
    print error
    finally{
    System.out.println("In finally");
    }As per my understanding if there is some error in try block , then control will skip to catch and then to finally.
    And other way, if there is no error then all lines in try block will be executed and control has to go to finally block.
    And i see that there is no error (i have used try catch inside line1 function call also)
    Now I am facing this problem.
    In try block, line 1 is executed and getting into finally and there is also no error so it has skipped catch block. And in try block line2 and line 3 are skipped.
    Can anybody tell me why is it so.
    thanks
    Ravi

    What might be the problem?Sunspots. Not enough fiber. Government conspiracy.
    These are just guesses, which is all we can do unless you read and obey the following:
    Please post a short, concise, executable example of what you're trying to do. This does not have to be the actual code you are using. Write a small example that demonstrates your intent, and only that. Wrap the code in a class and give it a main method that runs it - if we can just copy and paste the code into a text file, compile it and run it without any changes, then we can be sure that we haven't made incorrect assumptions about how you are using it.
    Post your code between [code] and [/code] tags. Cut and paste the code, rather than re-typing it (re-typing often introduces subtle errors that make your problem difficult to troubleshoot). Please preview your post when posting code.

  • I just updated my RAM and I keep getting a crash report. I have a 21.5 Inch mid 2010 imac. I also am experiencing slow load times and when I try to open Final Cut it says that quartz extreme is not compatible and that I have no VRAM even though I do.

    I just updated my RAM (replaced the two 2 gig cards with two Corsair 8 gig cards) and I keep getting a crash report. I have a 21.5 Inch mid 2010 imac. I also am experiencing slow load times with Photoshop and when I try to open Final Cut it says that quartz extreme is not compatible and that I have no VRAM even though I do.
    Here is the crash report:
    Interval Since Last Panic Report:  5426204 sec
    Panics Since Last Report:          2
    Anonymous UUID:                    2DD57DDB-BB42-5614-395A-CA6225BDAFD9
    Wed Mar 20 11:36:53 2013
    panic(cpu 0 caller 0xffffff801aa43d8e): "a freed zone element has been modified in zone: maps"@/SourceCache/xnu/xnu-2050.18.24/osfmk/kern/zalloc.c:219
    Backtrace (CPU 0), Frame : Return Address
    0xffffff81eb0eb950 : 0xffffff801aa1d626
    0xffffff81eb0eb9c0 : 0xffffff801aa43d8e
    0xffffff81eb0eba00 : 0xffffff801aa435d2
    0xffffff81eb0ebae0 : 0xffffff801aa663f7
    0xffffff81eb0ebb20 : 0xffffff801aa67398
    0xffffff81eb0ebc70 : 0xffffff801aa6887c
    0xffffff81eb0ebd20 : 0xffffff801ad5b8fe
    0xffffff81eb0ebf50 : 0xffffff801ade182a
    0xffffff81eb0ebfb0 : 0xffffff801aaced33
    BSD process name corresponding to current thread: launchd
    Mac OS version:
    Not yet set
    Kernel version:
    Darwin Kernel Version 12.2.0: Sat Aug 25 00:48:52 PDT 2012; root:xnu-2050.18.24~1/RELEASE_X86_64
    Kernel UUID: 69A5853F-375A-3EF4-9247-478FD0247333
    Kernel slide:     0x000000001a800000
    Kernel text base: 0xffffff801aa00000
    System model name: iMac11,2 (Mac-F2238AC8)
    System uptime in nanoseconds: 1070542822
    last loaded kext at 707348380: com.apple.driver.AppleIRController    320.15 (addr 0xffffff7f9c53e000, size 28672)
    loaded kexts:
    at.obdev.nke.LittleSnitch    3908
    com.apple.driver.AppleIRController    320.15
    com.apple.driver.AppleUSBCardReader    3.1.0
    com.apple.driver.AppleFileSystemDriver    3.0.1
    com.apple.AppleFSCompression.AppleFSCompressionTypeDataless    1.0.0d1
    com.apple.AppleFSCompression.AppleFSCompressionTypeZlib    1.0.0d1
    com.apple.BootCache    34
    com.apple.iokit.SCSITaskUserClient    3.5.1
    com.apple.driver.XsanFilter    404
    com.apple.iokit.IOAHCIBlockStorage    2.2.2
    com.apple.driver.AppleUSBHub    5.2.5
    com.apple.driver.AppleFWOHCI    4.9.6
    com.apple.driver.AirPort.Atheros40    600.70.23
    com.apple.driver.AppleUSBEHCI    5.4.0
    com.apple.driver.AppleAHCIPort    2.4.1
    com.apple.iokit.AppleBCM5701Ethernet    3.2.5b3
    com.apple.driver.AppleUSBUHCI    5.2.5
    com.apple.driver.AppleEFINVRAM    1.6.1
    com.apple.driver.AppleACPIButtons    1.6
    com.apple.driver.AppleRTC    1.5
    com.apple.driver.AppleHPET    1.7
    com.apple.driver.AppleSMBIOS    1.9
    com.apple.driver.AppleACPIEC    1.6
    com.apple.driver.AppleAPIC    1.6
    com.apple.driver.AppleIntelCPUPowerManagementClient    196.0.0
    com.apple.nke.applicationfirewall    4.0.39
    com.apple.security.quarantine    2
    com.apple.driver.AppleIntelCPUPowerManagement    196.0.0
    com.apple.iokit.IOUSBHIDDriver    5.2.5
    com.apple.iokit.IOSCSIBlockCommandsDevice    3.5.1
    com.apple.iokit.IOUSBMassStorageClass    3.5.0
    com.apple.driver.AppleUSBMergeNub    5.2.5
    com.apple.driver.AppleUSBComposite    5.2.5
    com.apple.iokit.IOSCSIMultimediaCommandsDevice    3.5.1
    com.apple.iokit.IOBDStorageFamily    1.7
    com.apple.iokit.IODVDStorageFamily    1.7.1
    com.apple.iokit.IOCDStorageFamily    1.7.1
    com.apple.iokit.IOAHCISerialATAPI    2.5.0
    com.apple.iokit.IOSCSIArchitectureModelFamily    3.5.1
    com.apple.iokit.IOUSBUserClient    5.2.5
    com.apple.iokit.IOFireWireFamily    4.5.5
    com.apple.iokit.IO80211Family    500.15
    com.apple.iokit.IOAHCIFamily    2.2.1
    com.apple.iokit.IOEthernetAVBController    1.0.2b1
    com.apple.iokit.IONetworkingFamily    3.0
    com.apple.iokit.IOUSBFamily    5.4.0
    com.apple.driver.AppleEFIRuntime    1.6.1
    com.apple.iokit.IOHIDFamily    1.8.0
    com.apple.iokit.IOSMBusFamily    1.1
    com.apple.security.sandbox    220
    com.apple.kext.AppleMatch    1.0.0d1
    com.apple.security.TMSafetyNet    7
    com.apple.driver.DiskImages    344
    com.apple.iokit.IOStorageFamily    1.8
    com.apple.driver.AppleKeyStore    28.21
    com.apple.driver.AppleACPIPlatform    1.6
    com.apple.iokit.IOPCIFamily    2.7.2
    com.apple.iokit.IOACPIFamily    1.4
    com.apple.kec.corecrypto    1.0
    Model: iMac11,2, BootROM IM112.0057.B00, 2 processors, Intel Core i3, 3.2 GHz, 16 GB, SMC 1.64f5
    Graphics: ATI Radeon HD 5670, ATI Radeon HD 5670, PCIe, 512 MB
    Memory Module: BANK 0/DIMM1, 8 GB, DDR3, 1333 MHz, 0x029E, 0x434D5341384758334D314131333333433920
    Memory Module: BANK 1/DIMM1, 8 GB, DDR3, 1333 MHz, 0x029E, 0x434D5341384758334D314131333333433920
    AirPort: spairport_wireless_card_type_airport_extreme (0x168C, 0x8F), Atheros 9280: 4.0.70.23-P2P
    Bluetooth: Version 4.0.9f33 10885, 2 service, 18 devices, 0 incoming serial ports
    Network Service: AirPort, AirPort, en1
    Serial ATA Device: ST31000528AS, 1 TB
    Serial ATA Device: HL-DT-STDVDRW  GA32N
    USB Device: hub_device, 0x0424  (SMSC), 0x2514, 0xfd100000 / 2
    USB Device: IR Receiver, apple_vendor_id, 0x8242, 0xfd120000 / 4
    USB Device: Built-in iSight, apple_vendor_id, 0x8502, 0xfd110000 / 3
    USB Device: hub_device, 0x0424  (SMSC), 0x2514, 0xfa100000 / 2
    USB Device: BRCM2046 Hub, 0x0a5c  (Broadcom Corp.), 0x4500, 0xfa110000 / 4
    USB Device: Bluetooth USB Host Controller, apple_vendor_id, 0x8215, 0xfa111000 / 6
    USB Device: Internal Memory Card Reader, apple_vendor_id, 0x8403, 0xfa120000 / 3

    There have been a few reports on here where Corsair RAM seems to have caused users a lot of grief with crashes.
    The recommendation on here, mostly, is to only buy RAM from macsales.com or crucial.com as they guarantee their modules will work and offer a no quibble lifetime guarantee.
    I'd put the original RAM back in, return the Corsair chips for a refund and re-order from one of those two companies.
    http://eshop.macsales.com/shop/apple/memory/iMac
    http://www.crucial.com/

  • Pages crashes when opening any document on iPad 3 Latest version.   I could find on the net and finally deleted Pages from my device and reinstalled it. Still when I try to create anew document or open a document it just cr

    Pages crashes when opening any document on iPad 3 Latest version. I tried everything I could find on the net and finally deleted Pages from my device and reinstalled it. Still when I try to create a new document or open a document it just crashes out.

    Try this:
    Make sure IOS is updated to latest version
    Reboot device by pressing both the home button and sleep/wake (power) buttons at the same time for 10-15 seconds until the apple logo appears on the screen, then let go.
    If that doesn't work then reset the device by going to settings/general/reset/reset all settings

  • Return statement and Try Catch problem

    Hi!!
    I've got the next code:
    public ResultSet DBSelectTeam(String query) {
    try {
    Statement s = con.createStatement();
    ResultSet rs = s.executeQuery(query);
    return rs;
    } catch (Exception err) {
    JOptionPane.showMessageDialog(null, "ERROR: " + err);
    But I need a return statement in the catch-block, but I don't know what's the best option.
    Help...
    Many thanks.

    The error message is: "missing return statement", Yes, I know.
    You have to either return from the catch statement, or throw from the catch statement, or return or throw after the catch statement.
    The only ways your method is allowed to complete is by returning a value or throwing an exception. As it stands, if an exception is thrown, you catch it, but then you don't throw anything and you don't return a value.
    So, like I said: What would you return from within or after catch? There's no good value to return. The only remotely reasonable choice would be null, but that sucks because now the caller has to explicitly check for it.
    So we conclude that catch shouldn't return anything. So catch must throw something. But what? You could wrap the SQLE in your own exception, but since the caller is dealing with JDBC constructs anyway (he has to handle the RS and close it and the Statement), there's no point in abstracting JDBC away. Plus he has to deal with SQLE anyway in his use of the RS and Statement. So you might as well just throw SQLE.
    So since you're going to just throw SQLE anyway, just get rid of the try/catch altogether and declare your method throws SQLException

Maybe you are looking for

  • Lost video file from a flash drive using iMac

    I played a video file that was saved on a flash drive on my iMac. After the video played, it was automatically deleted from the flash drive. I did not physically delete the file. When I closed the file, it simply vanished. Is there anyway to recover

  • Feature Request: Asset-sharing

    Adobe Illustrator recently posted a survey (Shared Content Survey) highlighting potential asset-sharing capabilities in future versions of Adobe CC applications. The lack of this seemingly logical feature has been a constant frustration for me and ma

  • Connexion to MySQL fails

    Hello Having followed a tutorial I wanted to try a connexion to a MySQL database which was well configured. I am using coldfusion mx 6.1 Here is the message I get : Connection verification failed for data source: membres []java.sql.SQLException: Comm

  • Ipod being recognised as a camera

    I have recently downloaded the latest version of i-tunes. However when now I plug in my ipod it is stating that the device is a camera and I cannot update anything. Anyone got any ideas? Very annoying!

  • Is there any SAP standard CAF?

    Hi, CAF experts. I'm wondering there is any CAF created by SAP, like ESS/MSS. Does SAP make any CAF-based application? Thanks in advance for all your answers.