Python中的异常处理失败

Python中的异常处理失败,python,flask,Python,Flask,我对Python非常陌生。我正在尝试处理文件上载web API中的异常。但我没能赶上。如果成功,则显示上载的文件 app.py: from flask import Flask from flask_cors import CORS, cross_origin from flask import request,jsonify import smtplib, os, cgi from email.mime.application import MIMEApplication from emai

我对Python非常陌生。我正在尝试处理文件上载web API中的异常。但我没能赶上。如果成功,则显示上载的文件

app.py:

from flask import Flask
from flask_cors import CORS, cross_origin
from flask import request,jsonify

import smtplib, os, cgi
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email import encoders
from werkzeug.utils  import secure_filename

app = Flask(__name__)
CORS(app)
app.config['UPLOAD_FOLDER'] = 'upload/'
# These are the extension that we are accepting to be uploaded
app.config['ALLOWED_EXTENSIONS'] = set(['txt', 'pdf','docx','ods','xls'])

# For a given file, return whether it's an allowed type or not
def allowed_file(filename):
    return '.' in filename and \
           filename.rsplit('.', 1)[1] in app.config['ALLOWED_EXTENSIONS']

@app.route('/upload', methods=['POST'])
def upload():
    file = request.files['file']
    try:
        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
        return('file uploaded successfully')
    except IOError:
        return("fail file upload")

if __name__=="__main__":
    app.run(debug=True)

尝试以下操作以捕获所有异常:

try:
    raise ValueError('stuff')
except BaseException as e:
    print 'Statement:', e.args
    print 'Type:', type(e)
产出:

声明:“东西”

类型:类“ValueError”


这将让您看到发生了什么-使用BaseException将捕获所有异常类型,然后您可以查询e以查看它是什么。显然,您应该小心捕获所有异常,通常认为这不是很好的实践,但至少在调试时可能有用。当您看到类型是什么时,可以返回并缩小范围。

是否尝试捕获所有异常以进行检查?IOError不能是正确的异常类型。首先替换为异常,然后打印并细化。或者:让它运行,而不必尝试/排除并优化。