2013-02-27 2 views
0

Эй, мне интересно, как отличается модель исключений Java в C++ и Python?Модель исключения в Java, C++, Python

Я думал, что только Java проверила исключения, но из того, что я прочитал, Python также проверил исключения?

Любые мысли было бы здорово, спасибо

+0

Да Python поддерживает обработку исключений. –

+0

Я думаю, что проверенные исключения Python используют декораторы для эмуляции декларации 'throws' от Java. Я не думаю, что это встроенная функция. –

+0

См .: http://www.mindview.net/Etc/Discussions/CheckedExceptions ** и ** http://stackoverflow.com/questions/838460/java-exception-vs-c-exceptions – Maroun

ответ

3

Python делает не уже проверенные исключения. Но у него есть механика обработки исключений.

def test(): 
    raise Exception() 

try: 
    test() 
except Exception: 
    print "bugger." 

# but its totally legal to just call it, and let any uncaught exceptions propagate 
test() 

полностью юридические благодаря дизайну виртуальной машины питона,

public static void TestMethod(){ 
    throw new Exception(); 
} 

с другой стороны работает код, который может бросить исключение (что компилятор обнаружит), что не является явно проверенный на Java, является полностью незаконным. Это просто невозможно сделать благодаря конструкции JVM и байтового компилятора.