diff --git a/python/src/com/jetbrains/python/validation/TryExceptAnnotator.java b/python/src/com/jetbrains/python/validation/TryExceptAnnotator.java
index e1f54238fbae..bffdaf4a6e29 100644
--- a/python/src/com/jetbrains/python/validation/TryExceptAnnotator.java
+++ b/python/src/com/jetbrains/python/validation/TryExceptAnnotator.java
@@ -3,10 +3,7 @@ package com.jetbrains.python.validation;
import com.intellij.psi.util.PsiTreeUtil;
import com.jetbrains.python.PyBundle;
-import com.jetbrains.python.psi.PyExceptPart;
-import com.jetbrains.python.psi.PyFinallyPart;
-import com.jetbrains.python.psi.PyRaiseStatement;
-import com.jetbrains.python.psi.PyTryExceptStatement;
+import com.jetbrains.python.psi.*;
/**
* Marks misplaced default 'except' clauses.
@@ -30,7 +27,8 @@ public class TryExceptAnnotator extends PyAnnotator {
@Override
public void visitPyRaiseStatement(PyRaiseStatement node) {
- if (node.getExpressions().length == 0 && PsiTreeUtil.getParentOfType(node, PyExceptPart.class, PyFinallyPart.class) == null) {
+ if (node.getExpressions().length == 0 &&
+ PsiTreeUtil.getParentOfType(node, PyExceptPart.class, PyFinallyPart.class, PyFunction.class) == null) {
markError(node, "No exception to reraise");
}
}
diff --git a/python/testData/highlighting/emptyRaise.py b/python/testData/highlighting/emptyRaise.py
index abd1bd4aa41a..90b544bc4302 100644
--- a/python/testData/highlighting/emptyRaise.py
+++ b/python/testData/highlighting/emptyRaise.py
@@ -9,4 +9,10 @@ except:
try:
raise ValueError
finally:
- raise
\ No newline at end of file
+ raise
+
+
+def exception_handler():
+ if undefined:
+ raise
+ log_somehow()
\ No newline at end of file
diff --git a/python/testData/highlighting/unsupportedFeaturesInPython3.py b/python/testData/highlighting/unsupportedFeaturesInPython3.py
index 9057c2a89cda..fb471df41212 100644
--- a/python/testData/highlighting/unsupportedFeaturesInPython3.py
+++ b/python/testData/highlighting/unsupportedFeaturesInPython3.py
@@ -24,4 +24,9 @@ try:
pass
except:
raise
+
+def exception_handler():
+ if undefined:
+ raise
+ log_somehow()
\ No newline at end of file