1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-02-09 05:01:57 +01:00

Define an AudacityException subclass for assertion violations

This commit is contained in:
Paul Licameli
2016-11-27 08:39:11 -05:00
parent df077d171a
commit f1cce8aa78
6 changed files with 126 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
//
// InconsistencyException.cpp
//
//
// Created by Paul Licameli on 11/27/16.
//
//
#include "Audacity.h"
#include "InconsistencyException.h"
InconsistencyException::~InconsistencyException()
{
}
std::unique_ptr< AudacityException > InconsistencyException::Move()
{
return std::unique_ptr< AudacityException >
{ safenew InconsistencyException{ std::move( *this ) } };
}
wxString InconsistencyException::ErrorMessage() const
{
// Shorten the path
wxString path { file };
auto sub = wxString{ wxFILE_SEP_PATH } + "src" + wxFILE_SEP_PATH;
auto index = path.Find(sub);
if (index != wxNOT_FOUND)
path = path.Mid(index + sub.size());
#ifdef __func__
return wxString::Format(
_("Internal error in %s at %s line %d.\nPlease inform the Audacity team at feedback@audacityteam.org."),
func, path, line
);
#else
return wxString::Format(
_("Internal error at %s line %d.\nPlease inform the Audacity team at feedback@audacityteam.org."),
path, line
);
#endif
}