有异常时会发生什么

时间:2013-06-07 07:25:54

标签: java python exception programming-languages

这可能是一个非常简单的问题,但只是想了解在发生异常时究竟发生了什么,在内存中执行操作时是否存在内存泄漏或者它是什么。这不仅仅是对python和java的尊重但对于所有编程语言

for ex:in python

try:
   "a"+ 1
except Exception,e:
   print "exception" + str(e)

爪哇:

public void FileSave(String name)
{  
   try 
   { 
      FileStream fs = new FileStream(name, FileMode.Create); 
   } 
   catch (Exception)
   { 
      throw new System.IO.IOException("File Open Error!"); 
   }  
}

3 个答案:

答案 0 :(得分:2)

关于Java,您可以在此处获取更多信息:What is an Exception?

答案 1 :(得分:2)

i am telling you a very basic example of exception handling.

请记住,例外是 RUN-TIME ERROR ,异常会导致程序异常终止。

异常处理机制确保,无论何时在我们的程序中发生任何异常而不是异常终止,我们的程序将遵循单独的代码行,然后它将终止正常< /强>,

public void FileSave(String name)
    {  
       try 
       { 
          FileStream fs = new FileStream(name, FileMode.Create); 
       } 
       catch (Exception ex)
       { 
          System.out.println(ex.toString()); 
       }  
    }

如果上述程序是这样编写的。

public void FileSave(String name)
        {  
              FileStream fs = new FileStream(name, FileMode.Create); 

        }

并且假设文件不存在或OS不允许进行IO操作,那么我们的程序将异常终止,但是如果我们使用异常处理机制,如:

public void FileSave(String name)
        {  
           try 
           { 
              FileStream fs = new FileStream(name, FileMode.Create); 
           } 
           catch (Exception ex)
           { 
              System.out.println(ex.toString()); 
           }  
        }

然后当代码 FileStream fs = new FileStream(name,FileMode.Create); 中发生异常时,首先会检查是否会在当前函数中捕获此异常或NOT,否则将使用异常传播机制。

参考此链接。 exception handling in java,仔细阅读,你会知道一个不。好的概念。

答案 2 :(得分:0)

当程序执行异常时会发生异常 - 这是语言中无法实现的。您可以捕获这些异常并执行代码来处理它。只有在发生异常时才会执行此特定代码。

如果您没有捕获异常,程序的执行将停止。

异常非常有用,许多程序员都希望代码中有异常,反过来他们可以捕获并编写代码。

在Python中比较这两个例子:

a = "foo"
b = 42

if isinstance(a, int):
    c = a + b
else:
    c = a + str(b)
print c

try:
    c = a + b
except TypeError, e:
    c = a + str(b)
print c

在Java示例中,您将抛出一个新的(未处理的)异常。该程序将暂停,因为您没有捕获该异常。