错误处理

This commit is contained in:
2026-08-16 18:33:24 +08:00
parent 8612b5ff86
commit 389ff81d42
44 changed files with 536 additions and 261 deletions
+9 -8
View File
@@ -1,3 +1,4 @@
#include <renderive/error/Error_Policy.hpp>
#include "Gallery_Scene3D.h"
#include "../Gallery_Capture_Json.h"
@@ -39,7 +40,7 @@ struct Value_Adapter<
const auto parsed = renderive::web::gallery_enum_cast<
renderive::render_3d::Renderable_Observer_Event>(value);
if (!parsed)
throw std::invalid_argument("unknown 3D observer event");
::renderive::error::unexpected<std::invalid_argument>("unknown 3D observer event");
target = *parsed;
}
};
@@ -93,7 +94,7 @@ Gallery_Render_Error gallery_render_error(Scene_Render_Error error) {
case Scene_Render_Error::shutting_down:
return Gallery_Render_Error::shutting_down;
}
throw std::logic_error("unknown scene render error");
::renderive::error::unexpected<std::logic_error>("unknown scene render error");
}
Frame_Request_Error frame_request_error(Scene_Render_Error error) {
switch (error) {
@@ -108,7 +109,7 @@ Frame_Request_Error frame_request_error(Scene_Render_Error error) {
case Scene_Render_Error::shutting_down:
return Frame_Request_Error::scene_shutting_down;
}
throw std::logic_error("unknown scene render error");
::renderive::error::unexpected<std::logic_error>("unknown scene render error");
}
struct Gallery_Point {
@@ -125,7 +126,7 @@ Frame_Mode render_frame_mode(Gallery_Frame_Mode mode) {
case Gallery_Frame_Mode::Playback:
return Frame_Mode::Playback;
}
throw std::invalid_argument("unknown gallery frame mode");
::renderive::error::unexpected<std::invalid_argument>("unknown gallery frame mode");
}
std::string mode_id(Gallery_Frame_Mode mode) {
@@ -231,7 +232,7 @@ public:
.visual_family = visual_family(case_id_)},
visual_) {
if (!visual_)
throw std::runtime_error("failed to create Point_Visual");
::renderive::error::unexpected<std::runtime_error>("failed to create Point_Visual");
visual_->set_object_name("3D Visual");
render_initial_frame();
}
@@ -401,7 +402,7 @@ public:
if (!capture) {
if (capture.error == Capture_Error::session_active)
return "A performance capture session is already active";
throw std::logic_error("validated capture request rejected");
::renderive::error::unexpected<std::logic_error>("validated capture request rejected");
}
last_action_result_ =
"capture session=" + std::to_string(capture.session_id);
@@ -422,7 +423,7 @@ public:
if (!capture) {
if (capture.error == Capture_Error::session_active)
return "A performance capture session is already active";
throw std::logic_error("validated capture request rejected");
::renderive::error::unexpected<std::logic_error>("validated capture request rejected");
}
last_action_result_ = "capture session=" +
std::to_string(capture.session_id) +
@@ -617,7 +618,7 @@ private:
points.push_back({{0.0F, 0.62F, 0.0F}, {255, 230, 20, 255}, 58.0F});
if (visual_->update_points(std::move(points)) !=
Visual_Data_Error::none)
throw std::logic_error("generated gallery point data is invalid");
::renderive::error::unexpected<std::logic_error>("generated gallery point data is invalid");
}
void advance_blue_point(float step) {