KiCad PCB EDA Suite
IO_ERROR Class Reference

Struct IO_ERROR is a class used to hold an error message and may be used when throwing exceptions containing meaningful error messages. More...

#include <ki_exception.h>

Inheritance diagram for IO_ERROR:

Public Member Functions

 IO_ERROR (const wxString &aProblem, const char *aThrowersFile, const char *aThrowersFunction, int aThrowersLineNumber)
 Constructor. More...
void init (const wxString &aProblem, const char *aThrowersFile, const char *aThrowersFunction, int aThrowersLineNumber)
virtual const wxString Problem () const
 what was the problem? More...
virtual const wxString Where () const
 where did the Problem() occur? More...
virtual const wxString What () const
 A composite of Problem() and Where() More...
virtual ~IO_ERROR () throw ()

Protected Attributes

wxString problem
wxString where

Detailed Description

Struct IO_ERROR is a class used to hold an error message and may be used when throwing exceptions containing meaningful error messages.

Dick Hollenbeck

Definition at line 47 of file ki_exception.h.

Constructor & Destructor Documentation

IO_ERROR::IO_ERROR ( const wxString &  aProblem,
const char *  aThrowersFile,
const char *  aThrowersFunction,
int  aThrowersLineNumber 


aProblemis Problem() text.
aThrowersFileis the FILE preprocessor macro but generated at the source file of thrower.
aThrowersFunctionis the function name at the throw site.
aThrowersLineNumber,isthe source code line number of the throw.

Use macro THROW_IO_ERROR() to wrap a call to this constructor at the call site.

Definition at line 63 of file ki_exception.h.

References init().

65  {
66  init( aProblem, aThrowersFile, aThrowersFunction, aThrowersLineNumber );
67  }
void init(const wxString &aProblem, const char *aThrowersFile, const char *aThrowersFunction, int aThrowersLineNumber)
Definition: exceptions.cpp:56

Definition at line 69 of file ki_exception.h.

69 {}
virtual IO_ERROR::~IO_ERROR ( )
throw (

Definition at line 79 of file ki_exception.h.

79 {}

Member Function Documentation

void IO_ERROR::init ( const wxString &  aProblem,
const char *  aThrowersFile,
const char *  aThrowersFunction,
int  aThrowersLineNumber 

Definition at line 56 of file exceptions.cpp.

References problem, THROWERS_WHERE, and where.

Referenced by IO_ERROR().

57 {
58  problem = aProblem;
60  // The throwers filename is a full filename, depending on Kicad source location.
61  // a short filename will be printed (it is better for user, the full filename has no meaning).
62  wxString srcname = aThrowersFile;
64  where.Printf( THROWERS_WHERE, srcname.AfterLast( '/' ).GetData(),
65  wxString( aThrowersFunction ).GetData(), aThrowersLineNumber );
66 }
Definition: exceptions.cpp:29
wxString where
Definition: ki_exception.h:83
wxString problem
Definition: ki_exception.h:82
const wxString IO_ERROR::Problem ( ) const

what was the problem?

Definition at line 49 of file exceptions.cpp.

References problem.

Referenced by FUTURE_FORMAT_ERROR::FUTURE_FORMAT_ERROR(), LIB_EDIT_FRAME::LoadOneSymbol(), BOARD::TracksInNetBetweenPoints(), and What().

50 {
51  return problem;
52 }
wxString problem
Definition: ki_exception.h:82
const wxString IO_ERROR::What ( ) const

A composite of Problem() and Where()

Definition at line 33 of file exceptions.cpp.

References Problem(), and Where().

Referenced by PCBNEW_CONTROL::AppendBoard(), PCB_EDIT_FRAME::AppendBoardFile(), SCH_EDIT_FRAME::AppendOneEEProject(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), FOOTPRINT_VIEWER_FRAME::ClickOnFootprintList(), DIALOG_PLOT_SCHEMATIC::CreateDXFFile(), DIALOG_PLOT_SCHEMATIC::createHPGLFile(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), DIALOG_PLOT_SCHEMATIC::createPDFFile(), DIALOG_PLOT_SCHEMATIC::createPSFile(), DIALOG_PLOT_SCHEMATIC::createSVGFile(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromCurrentLibrary(), PCB_EDIT_FRAME::Export_IDF3(), FOOTPRINT_EDIT_FRAME::Export_Module(), PCB_EDIT_FRAME::ExportSpecctraFile(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), FOOTPRINT_EDIT_FRAME::Import_Module(), PCB_EDIT_FRAME::ImportSpecctraSession(), PART_LIBS::LoadAllLibraries(), PCB_BASE_FRAME::LoadFootprint(), PCB_BASE_FRAME::LoadModuleFromLibrary(), main(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), APP_SINGLE_TOP::OnInit(), CV::IFACE::OnKifaceStart(), SCH::IFACE::OnKifaceStart(), PCB::IFACE::OnKifaceStart(), APP_SINGLE_TOP::OnRun(), APP_KICAD::OnRun(), KICAD_MANAGER_FRAME::OnRunPcbFpEditor(), KICAD_MANAGER_FRAME::OnRunSchLibEditor(), FOOTPRINT_EDIT_FRAME::OnSaveLibraryAs(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), FP_GRID_TRICKS::paste_text(), DIALOG_UPDATE_PCB::PerformUpdate(), PCB_EDIT_FRAME::Process_Config(), FOOTPRINT_EDIT_FRAME::ProcessPreferences(), CVPCB_MAINFRAME::ReadNetListAndLinkFiles(), PCB_EDIT_FRAME::ReadPcbNetlist(), CVPCB_MAINFRAME::ReadSchematicNetlist(), GITHUB_GETLIBLIST::remoteGetJSON(), GITHUB_PLUGIN::remoteGetZip(), KICAD_MANAGER_FRAME::RunEeschema(), KICAD_MANAGER_FRAME::RunPcbNew(), FOOTPRINT_EDIT_FRAME::SaveCurrentModule(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), LIB_EDIT_FRAME::SaveOneSymbol(), PCB_EDIT_FRAME::SavePcbCopy(), PCB_EDIT_FRAME::SavePcbFile(), WORKSHEET_LAYOUT::SetDefaultLayout(), WORKSHEET_LAYOUT::SetPageLayout(), DIALOG_NETLIST::verifyFootprints(), WORKSHEET_LAYOUT_FILEIO::WORKSHEET_LAYOUT_FILEIO(), WORKSHEET_LAYOUT_STRINGIO::WORKSHEET_LAYOUT_STRINGIO(), and NETLIST_EXPORTER_KICAD::WriteNetlist().

34 {
35 #ifdef DEBUG
36  return wxString( "IO_ERROR: " ) + Problem() + "\n\n" + Where();
37 #else
38  return Problem();
39 #endif
40 }
virtual const wxString Where() const
where did the Problem() occur?
Definition: exceptions.cpp:43
virtual const wxString Problem() const
what was the problem?
Definition: exceptions.cpp:49
const wxString IO_ERROR::Where ( ) const

where did the Problem() occur?

Definition at line 43 of file exceptions.cpp.

References where.

Referenced by What().

44 {
45  return where;
46 }
wxString where
Definition: ki_exception.h:83

Member Data Documentation

wxString IO_ERROR::problem
wxString IO_ERROR::where

Definition at line 83 of file ki_exception.h.

Referenced by init(), PARSE_ERROR::init(), and Where().

The documentation for this class was generated from the following files: