KiCad PCB EDA Suite
FUTURE_FORMAT_ERROR Struct Reference

Struct FUTURE_FORMAT_ERROR variant of PARSE_ERROR indicating that a syntax or related error was likely caused by a file generated by a newer version of KiCad than this. More...

#include <ki_exception.h>

Inheritance diagram for FUTURE_FORMAT_ERROR:
PARSE_ERROR IO_ERROR

Public Member Functions

 FUTURE_FORMAT_ERROR (const PARSE_ERROR &aParseError, const wxString &aRequiredVersion)
 
 ~FUTURE_FORMAT_ERROR () throw ()
 
void init (const wxString &aProblem, const char *aThrowersFile, const char *aThrowersFunction, int aThrowersLineNumber, const wxString &aSource, const char *aInputLine, int aLineNumber, int aByteIndex)
 
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...
 

Public Attributes

wxString requiredVersion
 version or date of KiCad required to open file More...
 
int lineNumber
 at which line number, 1 based index. More...
 
int byteIndex
 at which byte offset within the line, 1 based index More...
 
std::string inputLine
 problem line of input [say, from a LINE_READER]. More...
 

Protected Attributes

wxString problem
 
wxString where
 

Detailed Description

Struct FUTURE_FORMAT_ERROR variant of PARSE_ERROR indicating that a syntax or related error was likely caused by a file generated by a newer version of KiCad than this.

Can be used to generate more informative error messages.

Definition at line 143 of file ki_exception.h.

Constructor & Destructor Documentation

FUTURE_FORMAT_ERROR::FUTURE_FORMAT_ERROR ( const PARSE_ERROR aParseError,
const wxString &  aRequiredVersion 
)

Definition at line 90 of file exceptions.cpp.

References PARSE_ERROR::byteIndex, PARSE_ERROR::inputLine, PARSE_ERROR::lineNumber, IO_ERROR::Problem(), IO_ERROR::problem, and requiredVersion.

90  :
91  PARSE_ERROR(), requiredVersion( aRequiredVersion )
92 {
93  // Avoid double-printing the error message
94  bool wrapped_same_type = !!( dynamic_cast<const FUTURE_FORMAT_ERROR *>( &aParseError ) );
95 
96  if( wrapped_same_type )
97  {
98  problem = aParseError.Problem();
99  }
100  else
101  {
102  problem.Printf( _(
103  "KiCad was unable to open this file, as it was created with a more "
104  "recent version than the one you are running. To open it, you'll need "
105  "to upgrade KiCad to a more recent version.\n\n"
106  "Date of KiCad version required (or newer): %s\n\n"
107  "Full error text:\n%s" ),
108  requiredVersion, aParseError.Problem() );
109  }
110 
111  lineNumber = aParseError.lineNumber;
112  byteIndex = aParseError.byteIndex;
113  inputLine = aParseError.inputLine;
114 }
virtual const wxString Problem() const
what was the problem?
Definition: exceptions.cpp:49
int lineNumber
at which line number, 1 based index.
Definition: ki_exception.h:96
wxString requiredVersion
version or date of KiCad required to open file
Definition: ki_exception.h:145
int byteIndex
at which byte offset within the line, 1 based index
Definition: ki_exception.h:97
Struct FUTURE_FORMAT_ERROR variant of PARSE_ERROR indicating that a syntax or related error was likel...
Definition: ki_exception.h:143
std::string inputLine
problem line of input [say, from a LINE_READER].
Definition: ki_exception.h:103
wxString problem
Definition: ki_exception.h:82
FUTURE_FORMAT_ERROR::~FUTURE_FORMAT_ERROR ( )
throw (
)
inline

Definition at line 148 of file ki_exception.h.

148 {}

Member Function Documentation

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

Definition at line 56 of file exceptions.cpp.

References IO_ERROR::problem, THROWERS_WHERE, and IO_ERROR::where.

Referenced by IO_ERROR::IO_ERROR().

57 {
58  problem = aProblem;
59 
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;
63 
64  where.Printf( THROWERS_WHERE, srcname.AfterLast( '/' ).GetData(),
65  wxString( aThrowersFunction ).GetData(), aThrowersLineNumber );
66 }
#define THROWERS_WHERE
Definition: exceptions.cpp:29
wxString where
Definition: ki_exception.h:83
wxString problem
Definition: ki_exception.h:82
void PARSE_ERROR::init ( const wxString &  aProblem,
const char *  aThrowersFile,
const char *  aThrowersFunction,
int  aThrowersLineNumber,
const wxString &  aSource,
const char *  aInputLine,
int  aLineNumber,
int  aByteIndex 
)
inherited

Definition at line 69 of file exceptions.cpp.

References PARSE_ERROR::byteIndex, PARSE_ERROR::inputLine, PARSE_ERROR::lineNumber, PARSE_PROBLEM, IO_ERROR::problem, THROWERS_WHERE, and IO_ERROR::where.

Referenced by PARSE_ERROR::PARSE_ERROR().

74 {
75  problem.Printf( PARSE_PROBLEM, aProblem.GetData(), aSource.GetData(), aLineNumber, aByteIndex );
76 
77  inputLine = aInputLine;
78  lineNumber = aLineNumber;
79  byteIndex = aByteIndex;
80 
81  // The throwers filename is a full filename, depending on Kicad source location.
82  // a short filename will be printed (it is better for user, the full filename has no meaning).
83  wxString srcname = aThrowersFile;
84 
85  where.Printf( THROWERS_WHERE, srcname.AfterLast( '/' ).GetData(),
86  wxString( aThrowersFunction ).GetData(), aThrowersLineNumber );
87 }
int lineNumber
at which line number, 1 based index.
Definition: ki_exception.h:96
#define THROWERS_WHERE
Definition: exceptions.cpp:29
int byteIndex
at which byte offset within the line, 1 based index
Definition: ki_exception.h:97
wxString where
Definition: ki_exception.h:83
std::string inputLine
problem line of input [say, from a LINE_READER].
Definition: ki_exception.h:103
wxString problem
Definition: ki_exception.h:82
#define PARSE_PROBLEM
Definition: exceptions.cpp:30
const wxString IO_ERROR::Problem ( ) const
virtualinherited

what was the problem?

Definition at line 49 of file exceptions.cpp.

References IO_ERROR::problem.

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

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

A composite of Problem() and Where()

Definition at line 33 of file exceptions.cpp.

References IO_ERROR::Problem(), and IO_ERROR::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_SYMBOL_REMAP::createProjectSymbolLibTable(), 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(), GPCB_PLUGIN::FootprintEnumerate(), PCB_IO::FootprintEnumerate(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), FOOTPRINT_EDIT_FRAME::Import_Module(), PCB_EDIT_FRAME::ImportSpecctraSession(), FP_CACHE::Load(), GPCB_FPL_CACHE::Load(), PART_LIBS::LoadAllLibraries(), PCB_BASE_FRAME::loadFootprint(), PCB_BASE_FRAME::LoadFootprint(), PCB_BASE_FRAME::LoadModuleFromLibrary(), main(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), SCH_BASE_FRAME::OnEditSymbolLibTable(), 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(), SYMBOL_GRID_TRICKS::paste_text(), FP_GRID_TRICKS::paste_text(), PROJECT::PcbFootprintLibs(), DIALOG_UPDATE_PCB::PerformUpdate(), PCB_EDIT_FRAME::Process_Config(), FOOTPRINT_EDIT_FRAME::ProcessPreferences(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), 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_GLOBAL_SYM_LIB_TABLE_CONFIG::TransferDataFromWindow(), 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
virtualinherited

where did the Problem() occur?

Definition at line 43 of file exceptions.cpp.

References IO_ERROR::where.

Referenced by IO_ERROR::What().

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

Member Data Documentation

int PARSE_ERROR::byteIndex
inherited

at which byte offset within the line, 1 based index

Definition at line 97 of file ki_exception.h.

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

std::string PARSE_ERROR::inputLine
inherited

problem line of input [say, from a LINE_READER].

this is brought up in original byte format rather than wxString form, incase there was a problem with the encoding, in which case converting to wxString is not reliable in this context.

Definition at line 103 of file ki_exception.h.

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

int PARSE_ERROR::lineNumber
inherited

at which line number, 1 based index.

Definition at line 96 of file ki_exception.h.

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

wxString IO_ERROR::problem
protectedinherited
wxString FUTURE_FORMAT_ERROR::requiredVersion

version or date of KiCad required to open file

Definition at line 145 of file ki_exception.h.

Referenced by FUTURE_FORMAT_ERROR().

wxString IO_ERROR::where
protectedinherited

Definition at line 83 of file ki_exception.h.

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


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