def wrapper(*args, **kwargs): try: return func(*args, **kwargs) except exceptions, e: if not ignore: client.create_from_exception(sys.exc_info()) return default
def log_exception_wrapper(*args, **kwargs): try: return func(*args, **kwargs) except exceptions, e: exec_info = sys.exc_info() frame = exec_info[2].tb_frame.f_back file_name = inspect.getfile(log_exception_wrapper) func_name = 'log_exception_wrapper' #check if func is called by other wrapped function #we should not catch execption in this case, because other function #can be waiting for it. Really exception can be caught by any not #wrapped function, but you always can use ignore=False while frame: if frame.f_code.co_name == func_name and frame.f_code.co_filename == file_name: if not hasattr(e, '_traceback'): e._traceback = exec_info[2] raise e frame = frame.f_back data = { 'stack': traceback.extract_stack() } if hasattr(e, '_traceback'): exec_info = exec_info[0], exec_info[1], e._traceback client.create_from_exception(exec_info, logger=logger, data=data) if not ignore: raise e
def log_exception_wrapper(*args, **kwargs): try: return func(*args, **kwargs) except exceptions, e: exec_info = sys.exc_info() frame = exec_info[2].tb_frame.f_back file_name = inspect.getfile(log_exception_wrapper) func_name = 'log_exception_wrapper' #check if func is called by other wrapped function #we should not catch execption in this case, because other function #can be waiting for it. Really exception can be caught by any not #wrapped function, but you always can use ignore=False while frame: if frame.f_code.co_name == func_name and frame.f_code.co_filename == file_name: if not hasattr(e, '_traceback'): e._traceback = exec_info[2] raise e frame = frame.f_back data = {'stack': traceback.extract_stack()} if hasattr(e, '_traceback'): exec_info = exec_info[0], exec_info[1], e._traceback client.create_from_exception(exec_info, logger=logger, data=data) if not ignore: raise e
def fixPdf(pdfFile): try: fileOpen = file(pdfFile, "a") fileOpen.write("%%EOF") fileOpen.close() return "Fixed" except Exception, e: sentry_client.create_from_exception(exc_info=sys.exc_info(), data={})
def tumblr_post_photo(request, access_token, access_token_secret, blog_hostname, comment_id): comment = get_object_or_404(QuestComment, id=comment_id) try: models.post_photo(request.user, blog_hostname, comment) except requests.exceptions.HTTPError as e: client.create_from_exception() raise ServiceError("Error posting to Tumblr.")
def ngram_bill_text(): bill_files = Bill_File.objects.filter(parsed=False).exclude(converted_bill_text="")[0:20] for bill_file in bill_files: try: gram_parse_object_text(bill_file, bill_file.converted_bill_text) bill_file.parsed = True bill_file.save() except: sentry_client.create_from_exception(exc_info=sys.exc_info(), data={})
def _post_request(worker, request, environ={}): from canvas import bgwork, util from sentry.client.models import client try: bgwork.perform() except Exception, e: util.logger.exception('post_request error in bgwork.perform:' + e.message) client.create_from_exception()
def do_graph_action(): try: graph = GraphAPI(access_token) graph.put_object('me', send_action, quest=quest_url) if request: Metrics.share_to_timeline.record(request, quest=quest_url) except GraphAPIError as e: if request: Metrics.share_to_timeline_error.record(request, quest=quest_url) client.create_from_exception()
def server_error(self, request, exception): exc_info = sys.exc_info() client.create_from_exception(exc_info) if settings.DEBUG: (exc_type, exc_info, tb) = exc_info message = "%s\n" % exc_type.__name__ message += "%s\n\n" % exc_info message += "TRACEBACK:\n" for tb in traceback.format_tb(tb): message += "%s\n" % tb return self.serialize_error(500, message) else: return self.serialize_error(500, _('Internal error'))
def _save(self, name, content): name = name.replace('\\', '/') key = Key(self.bucket, name) try: if hasattr(content, 'temporary_file_path'): key.set_contents_from_filename(content.temporary_file_path()) elif isinstance(content, File): key.set_contents_from_file(content) else: key.set_contents_from_string(content) key.make_public() return name except (BotoClientError, BotoServerError), e: client.create_from_exception() raise S3StorageError(*e.args)
def convert_bill_text(): bill_files = Bill_File.objects.filter(converted_bill_text="")[0:20] for bill_file in bill_files: mtype = mimetypes.guess_type(bill_file.file.path)[0] try: if mtype == "application/pdf": bill_file.converted_bill_text = convert_pdf(bill_file.file.path) elif mtype == "text/html": bill_file.converted_bill_text = strip_tags(bill_file.file.path) bill_file.save() except PdfReadError: fixPdf(bill_file.file.path) except: sentry_client.create_from_exception(exc_info=sys.exc_info(), data={})
def process_mail(mail): translation.activate(settings.LANGUAGE_CODE) def run(mail_string): try: _process_mail(mail_string) except Exception: transaction.rollback() return sys.exc_info() else: transaction.commit() return None run = transaction.commit_manually(run) exc_info = run(mail) if exc_info is not None: from sentry.client.models import client client.create_from_exception(exc_info=exc_info, view="froide.foirequest.tasks.process_mail")
def get_bill_details(): json_objects = JSON_Archive.objects.filter(parsed=False) for json_object in json_objects: json_object_content = json.loads(json_object.content) bill = sunlight.openstates.bill( bill_id=json_object_content["id"], ) bill = sunlight.openstates.bill(bill_id=json_object_content["id"],) try: old_bill = Bill.objects.get(json_archive_id=json_object.id) except Bill.DoesNotExist: try: local_bill = Bill() local_bill.json_details = json.dumps(bill) local_bill.json_archive = json_object local_bill.save() bill_file = Bill_File() bill_file.bill = local_bill if bill["documents"]: f = urllib.urlopen(bill["documents"][0]["url"]) if f.getcode() == 200: contents = f.read() file_name = f.url.split("/")[-1] f.close() file_contents = ContentFile(contents) bill_file.file.save(file_name, file_contents, save=True) bill_file.save() json_object.parsed = True json_object.save() except: sentry_client.create_from_exception(exc_info=sys.exc_info(), data={})
def handle_error(self, exc_info): client.create_from_exception(exc_info)