Github user zentol commented on the pull request:

    https://github.com/apache/flink/pull/1045#issuecomment-134203619
  
    InvalidTypesException (from here on abbreviated as ITE) is no longer 
unchecked.
    
    For this to work i had to make changes in surprisingly many classes so 
let's break it down:
    
    * In general, InvalidProgramExceptions are now thrown for unrecoverable 
conditions, where previously an ITE would be thrown..
    
    * TypeExtractor methods that return a TypeInformation will never throw an 
ITE and instead return a MissingTypeInfo if it is allowed, otherwise an 
InvalidProgramException.
    * One public TypeExtractor method now throws an ITE, which is 
getParameterType(). This method is heavily used in the TypeExtractor itself as 
well, so i didn't see a way to fix this in a non API breaking way that doesn't 
rely yet again on unchecked exceptions.
     * affects hadoop-compatibility functions, which now catch them
    
    * A few OperatorClasses catched ITE's in returns(TypeInformation ...) and 
then manually created a MissingTypeInfo. This now happens in the TypeExtractor 
directly.
    
    * TypeInformation classes threw an ITE in getInfoFor(Class ...) if the 
given class didn't match the TypeInformation class. These have been changed to 
IllegalArgumentExceptions.
    
    * DataSet/DataStream threw an ITE in getType() if the type was a 
MissingTypeInfo, changed to InvalidProgramException.
     * similiar issue in StreamExecutionEnvironment


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to