Unraisable error with TypeError: Cannot change data-type for object array
#### Code Sample

```python
import pandas as pd
import datetime

df = pd.DataFrame({
    'my_date': [None],
    'my_datetime': [datetime.datetime.now()]
})

def doit(row):
    return len(row.apply(lambda v: str(v)))

def tryit(row):
    try:
        result = doit(row)
    except Exception as err:
        print("ERROR: {}".format(err))
        raise err
    return result
        
df.apply(tryit, axis=1)
```
#### Problem description

The above code will simultaneously print "ERROR: Cannot change data-type for object array." AND NOT raise an error.  Which seems impossible to me, since the exception should be re-raised.

This is a problem because I've got some code that is trying to catch errors, and whatever is going on above is give false-positives.  If I remove the try/except block, I get no errors.  But if it's there, errors are caught.  

I tried this in Pandas 0.22.0 and 0.23.1.  It ONLY happens in the latest version, 0.23.1.

It also only seems to be an issue if a datetime and None values are part of the row.
