handle errors in main entry point

This commit is contained in:
scawful
2024-05-30 00:31:02 -04:00
parent fb22dc2bb1
commit 0f19fda556
3 changed files with 8 additions and 4 deletions

View File

@@ -244,11 +244,12 @@ void Controller::OnInput() {
HandleMouseMovement(wheel); HandleMouseMovement(wheel);
} }
void Controller::OnLoad() { absl::Status Controller::OnLoad() {
if (master_editor_.quit()) { if (master_editor_.quit()) {
active_ = false; active_ = false;
} }
PRINT_IF_ERROR(master_editor_.Update()); RETURN_IF_ERROR(master_editor_.Update());
return absl::OkStatus();
} }
void Controller::DoRender() const { void Controller::DoRender() const {

View File

@@ -33,7 +33,7 @@ class Controller : public ExperimentFlags {
bool IsActive() const { return active_; } bool IsActive() const { return active_; }
absl::Status OnEntry(std::string filename = ""); absl::Status OnEntry(std::string filename = "");
void OnInput(); void OnInput();
void OnLoad(); absl::Status OnLoad();
void DoRender() const; void DoRender() const;
void OnExit(); void OnExit();

View File

@@ -41,7 +41,10 @@ int main(int argc, char** argv) {
try { try {
while (controller.IsActive()) { while (controller.IsActive()) {
controller.OnInput(); controller.OnInput();
controller.OnLoad(); if (auto status = controller.OnLoad(); !status.ok()) {
std::cerr << status.message() << std::endl;
break;
}
controller.DoRender(); controller.DoRender();
} }
controller.OnExit(); controller.OnExit();