Commit Graph

55 Commits

Author SHA1 Message Date
marioalexis
fd5eb34d6a Base: Add PropertyError exception 2024-08-02 20:19:16 -03:00
wmayer
ba208c9dd6 Base: cppcoreguidelines 2023-11-24 00:11:32 +01:00
wmayer
3ac4dc0686 fix cppcoreguidelines-*
* cppcoreguidelines-init-variables
* cppcoreguidelines-c-copy-assignment-signature
* cppcoreguidelines-macro-usage
* cppcoreguidelines-non-private-member-variables-in-classes
* cppcoreguidelines-pro-type-member-init
* cppcoreguidelines-slicing
* cppcoreguidelines-special-member-functions
* cppcoreguidelines-virtual-class-destructor
2023-11-16 01:22:09 +01:00
wmayer
bd88162b9d fix readability-*:
* readability-const-return-type
* readability-container-data-pointer
* readability-container-size-empty
* readability-delete-null-pointer
* readability-else-after-return
* readability-inconsistent-declaration-parameter-name
* readability-redundant-member-init
* readability-redundant-smartptr-get
* readability-redundant-string-cstr
* readability-use-anyofallof
* readability-static-definition-in-anonymous-namespace
* readability-static-accessed-through-instance
* readability-simplify-boolean-expr
2023-11-16 01:22:08 +01:00
wmayer
c5f5bfd22a fix readability-braces-around-statements 2023-11-16 01:22:08 +01:00
wmayer
985def3416 Base: apply clang format 2023-11-13 12:01:26 -05:00
wmayer
097d5d6fee Base: C++ core guidelines: init variables 2023-08-24 18:48:52 +02:00
wmayer
5610c22cbb Base: modernize C++: use equals default 2023-08-20 18:10:17 +02:00
wmayer
31ed14db83 modernize C++: use noexcept 2023-08-07 16:06:58 +02:00
Uwe
61303b0a01 [Base] remove some more superfluous nullptr checks 2022-07-18 13:07:16 +02:00
wmayer
e4d1ed8366 Base: rename BaseExceptionFreeCADError to PyExc_FC_GeneralError 2022-03-17 14:45:48 +01:00
wmayer
1f12dca2b4 Py: replace BaseExceptionFreeCADError with more suitable exception types 2022-03-17 13:54:23 +01:00
wmayer
a90a39a4c9 Base: add more custom Python exception types 2022-03-17 11:29:09 +01:00
Uwe
71d6e43d54 [Base] some sorting and cleanup 2022-03-02 01:51:05 +01:00
Uwe
581a66aa2d [Base] Exception and FileInfo: remove unused includes 2022-02-23 19:13:13 +01:00
wmayer
cad0d01883 Base: modernize C++11
* remove redundant void-arg
* use nullptr
* replace deprecated headers
2022-01-25 20:21:30 +01:00
wmayer
659a55ffb9 Base: Exception handling:
* Harmonize FreeCAD with Python exception types
* Implement AbortException::getPyExceptionType() to avoid handling it in client code
* Remove catch block for plain C strings
2022-01-19 18:00:04 +01:00
wmayer
7df49abba9 Base: [skip ci] pass the full file path to the FileException 2021-09-29 14:02:46 +02:00
Heewa Barfchin
ce678a2d4d Fix lost filename in err msg
In some circumstances, FileExceptions are constructed empty, then have a
filename assigned to them, but the error message in these scenarios is
left as the default "unknown" one, which is sometimes shown to users.
This change fixes that case to be consistent with instances that are
constructed with the filename.
2021-05-14 12:34:20 -04:00
luz paz
59b7e9fdd0 Base: remove Py2 code 2021-04-26 09:23:58 +02:00
luz paz
01b21e0d06 Base: Fix header uniformity, whitespace, and doxygen
[skip ci]
2020-11-22 18:12:16 +01:00
wmayer
033e4d900b Base: [skip ci] Coverity: Uncaught exception 2020-09-14 18:34:25 +02:00
wmayer
9367e73e92 LGTM: [skip ci] fix: Inconsistent definition of copy constructor and assignment ('Rule of Two')
Remove user-defined copy constructor of Exception classes without assignment operator
2020-07-27 13:47:41 +02:00
wmayer
1a34d3da1f Coverity: Uncaught exception 2020-07-20 17:34:26 +02:00
luz.paz
ae72e2c762 Trivial code formatting for some {.cpp,.h} files 2020-04-06 12:55:27 +02:00
wmayer
5bfef75696 Base: [skip ci] add method to more easily set the Python error indicator from a Base::Exception 2020-03-18 17:53:13 +01:00
luz.paz
011e5aedfa src/Base: [skip ci] fix header uniformity
This PR fixes header uniformity across all `src/Base` files
2019-12-25 11:38:58 +01:00
wmayer
9fa56345cf core system
force strict ISO C++ (-Wpedantic)
TODO: still a lot of variadic macros are not valid ISO C++
2019-09-18 01:01:14 +02:00
Zheng, Lei
8f16147a40 Base: improve exception
For better FC and Python exception mapping.
2019-08-17 14:52:08 +02:00
wmayer
1647eee92c add specialized exception type for bad graphs 2018-11-26 14:15:19 +01:00
wmayer
a41a130704 some additions to pR 1794:
add a special XMLAttributeError class to indicate an error when accessing a missing attribute
in PropertyContainer::Restore make error handling more flexible
2018-11-19 19:07:56 +01:00
Abdullah Tahiri
83bee99cde New Base::Exception type RestoreError 2018-11-19 11:31:07 +01:00
wmayer
ffac6242fd fixes of PR 765
remove QT_TRANSLATE_NOOP because of compiler warnings
mark _isReported as mutable to avoid removing const keyword from ReportException()
improve whitespaces
2017-08-17 22:50:01 +02:00
Abdullah Tahiri
806e06a35e Exception extension to only report once 2017-08-17 22:45:40 +02:00
Abdullah Tahiri
fa3a4f1f4c Exceptions: translation support 2017-08-17 22:44:11 +02:00
wmayer
64d7cab373 fix build failure and make Py2/Py3 specific change 2017-05-15 22:36:21 +02:00
wmayer
1d8206acbf Fix various issues:
+ fix dangling pointers when fetching Python error text
+ initialize members in overloaded constructors of Exception class
+ implement assignment operator in sub-class
+ move to PyCXX API to simplify handling with reference counting and reading values from the dict
2017-05-15 18:49:09 +02:00
wmayer
f46e89a1ae fix -Woverloaded-virtual 2017-05-13 16:46:49 +02:00
wmayer
dc03118b4b improve whitespaces and reduce code duplication 2017-05-13 16:00:32 +02:00
Abdullah Tahiri
f4c0f0acae Renaming getPyDict to getPyObject for consistency with BaseClass 2017-05-13 15:27:57 +02:00
Abdullah Tahiri
3a27e2d8ff Enable exceptions to save/restore information in a python dictionary and enable throwing exception from dictionary information 2017-05-13 15:27:57 +02:00
Abdullah Tahiri
8884a73b07 Provide default constructors for all exception types 2017-05-13 15:27:57 +02:00
Abdullah Tahiri
82b9eba525 Exception: Extension to access debug information and change of line to int type 2017-05-13 15:27:57 +02:00
Abdullah Tahiri
5cbeb1002e Base::Exception extension
=========================

1. Enable automatic storing of information (function, file, line) when throwing the exception via macro:

Examples:

THROWM(Exception, "BSpline GeoId is out of bounds.")
THROWM(ValueError, "BSpline GeoId is out of bounds.")

THROW(AbortException)

Output:

a) Python Console (what()):
App.ActiveDocument.Sketch004.modifyBSplineKnotMultiplicity(16,3,0)
Traceback (most recent call last):
File "<input>", line 1, in <module>
Base.FreeCADError: FreeCAD exception thrown (BSpline GeoId is out of bounds.)

b) ReportException (report()):
Exception (Thu Apr 27 19:15:24 2017): BSpline GeoId is out of bounds. in bool Sketcher::SketchObject::modifyBSplineKnotMultiplicity(int, int, int) in src/Mod/Sketcher/App/SketchObject.cpp:4102

2. Extend the basic framework so as to allow more control over the mangling of the message introduced by the user, setting the basis to allow, where needed,
 to preserve the original message while allowing full legacy behaviour.

3. Supporting FileDialog reporting as legacy
2017-05-03 22:08:10 +02:00
Abdullah Tahiri
c2eea67893 Exception: Add CADKernelError exception for specialized OCC exception propagation to App::DocumentObject 2017-05-03 22:08:10 +02:00
wmayer
fb7094bf31 use specialized exception classes 2017-04-28 18:49:11 +02:00
wmayer
39e589a4d7 fix -Wextra in FreeCADBase 2016-09-21 15:02:02 +02:00
wmayer
e4e018fe94 + fix possible crash when throw file exception 2016-06-11 16:25:06 +02:00
wmayer
123f182c96 + support of drag'n'drop for custom view provider 2015-11-03 16:21:51 +01:00
wmayer
c114c648fc + use dedicated exception classes for expression and parsing errors 2015-09-27 23:17:33 +02:00