During method execution, it is sometimes necessary to abort the processing because an error condition was met. This recipe shows how to do this so that a helpful error message is displayed to the user when a method which writes a file to disk encounters an error.
To use this recipe, you need a method, which can have an abnormal condition. We will use the following one:
import os from openerp import models, fields, api class SomeModel(models.Model): data = fields.Text('Data') @api.multi def save(self, filename): path = os.path.join('/opt/exports', filename) with open(path, 'w') as fobj: for record in self: fobj.write(record.data) fobj.write('\n')
This method can fail because of permission issues, or a full disk, or an illegal name, which would cause an IOError
or an OSError
exception to be raised.