[wpilibc] Remove ErrorBase (#3306)

Replace with new exception-based error reporting, consistent with Java.
This also builds stacktraces into the reporting/exceptions.
This commit is contained in:
Peter Johnson
2021-04-18 20:35:29 -07:00
committed by GitHub
parent 0abf6c9045
commit 8d961dfd25
113 changed files with 993 additions and 2200 deletions

View File

@@ -9,7 +9,6 @@
#include <memory>
#include <string>
#include <frc/ErrorBase.h>
#include <units/time.h>
#include <wpi/ArrayRef.h>
#include <wpi/Demangle.h>
@@ -46,10 +45,10 @@ class ProxyScheduleCommand;
* @see CommandScheduler
* @see CommandHelper
*/
class Command : public frc::ErrorBase {
class Command {
public:
Command() = default;
~Command() override;
virtual ~Command();
Command(const Command&);
Command& operator=(const Command&);

View File

@@ -8,8 +8,7 @@
#include <memory>
#include <utility>
#include <frc/ErrorBase.h>
#include <frc/WPIErrors.h>
#include <frc/Errors.h>
#include <frc/Watchdog.h>
#include <frc/smartdashboard/Sendable.h>
#include <frc/smartdashboard/SendableHelper.h>
@@ -29,7 +28,6 @@ class Subsystem;
* methods to be called and for their default commands to be scheduled.
*/
class CommandScheduler final : public frc::Sendable,
public frc::ErrorBase,
public frc::SendableHelper<CommandScheduler> {
public:
/**
@@ -182,14 +180,12 @@ class CommandScheduler final : public frc::Sendable,
Command, std::remove_reference_t<T>>>>
void SetDefaultCommand(Subsystem* subsystem, T&& defaultCommand) {
if (!defaultCommand.HasRequirement(subsystem)) {
wpi_setWPIErrorWithContext(
CommandIllegalUse, "Default commands must require their subsystem!");
return;
throw FRC_MakeError(frc::err::CommandIllegalUse,
"Default commands must require their subsystem!");
}
if (defaultCommand.IsFinished()) {
wpi_setWPIErrorWithContext(CommandIllegalUse,
"Default commands should not end!");
return;
throw FRC_MakeError(frc::err::CommandIllegalUse,
"Default commands should not end!");
}
SetDefaultCommandImpl(subsystem,
std::make_unique<std::remove_reference_t<T>>(

View File

@@ -15,8 +15,6 @@
#include <utility>
#include <vector>
#include <frc/ErrorBase.h>
#include <frc/WPIErrors.h>
#include <wpi/ArrayRef.h>
#include "frc2/command/CommandGroupBase.h"