From 76f4fd3deff8fd63e15d2198a2f633d933ccbae9 Mon Sep 17 00:00:00 2001 From: Csaba Hruska Date: Wed, 16 Sep 2015 12:01:08 +0200 Subject: error handling in C++ --- templates/data.cpp.ede | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'templates') diff --git a/templates/data.cpp.ede b/templates/data.cpp.ede index a1bcdf7..c56d9fc 100644 --- a/templates/data.cpp.ede +++ b/templates/data.cpp.ede @@ -26,13 +26,15 @@ template<> {{ t.value.dataName }} fromJSON<{{ t.value.dataName }}>({{ t.value.da {% if !c.first %}else {% endif %}if (tag == "{{ c.value.name }}") { tagType = ::{{ t.value.dataName }}::tag::{{ c.value.name }}; {% if !(c.value.fields | empty) %} - ::data::{{ c.value.name }} tv;{% for f in c.value.fields %}{% if c.value.fields | hasFieldNames %} + ::data::{{ c.value.name }} tv; + tv.tag = tagType;{% for f in c.value.fields %}{% if c.value.fields | hasFieldNames %} tv.{{ f.value.fieldName }} = fromJSON(tv.{{ f.value.fieldName }}, obj["{{ f.value.fieldName }}"]);{% else %} tv._{{ f.index0 }} = fromJSON(tv._{{ f.index0 }}, obj["arg{{ f.index0 }}"]);{% endif %}{% endfor %} return tv; {% endif %} } {% endfor %} + else throw "unknown constructor: " + tag; {{ t.value.dataName }} o; o.tag = tagType; return o; -- cgit v1.2.3