Was ist ein gutes globales exception-handling-Strategie für Unity3D?

Ich bin auf der Suche zu tun, einige Unity3D-scripting-Sachen, und ich würde gerne die Globale exception-handling-system. Dies ist nicht für den Betrieb in der release-version des Spiels, die Absicht ist, fangen Sie die Ausnahmen in Skripte und auch in der editor-Skripte und stellen Sie sicher, Sie werden weitergeleitet an eine Datenbank für die Analyse (und auch zum senden von E-Mail zum zuständigen Entwickler, so dass Sie beheben können Ihre shizzle).

In eine vanilla-C# - app habe ich ein try-catch um die Main-Methode. In WPF-würde ich Haken Sie eine oder mehrere der unbehandelte Ausnahme-events. In Der Einheit...?

Bisher die beste, die ich habe in der Lage zu kommen mit so etwas wie dieses:

using UnityEngine;
using System.Collections;

public abstract class BehaviourBase : MonoBehaviour {

    //Use this for initialization
    void Start () {

    }

    //Update is called once per frame
    void Update () {
        try
        {
            performUpdate();
            print("hello");
        }
        catch (System.Exception e)
        {
            print(e.ToString());
        }

    }

    public abstract void performUpdate();

}

In anderen scripts, die ich ableiten BehaviourBase statt MonoBehavior und implementieren performUpdate() anstatt Update(). Ich habe nicht implementiert, die eine parallele version für den Editor clases, aber ich nehme an, ich müsste um das gleiche zu tun gibt.

Ich weiß nicht, wie diese Strategie allerdings, denn ich muss man es auf alle Skripts, die schnappen wir uns aus der community (und ich ' ll haben, um es durchzusetzen im team). Der Editor Skripte nicht über einen single point of entry vergleichbar MonoBehavior entweder, so gehe ich davon aus, dass ich hätte zu implementieren exception-sichere Versionen von wizards, Editoren und so weiter.

Ich habe gesehen, Vorschläge über den Fang von log-Meldungen (im Gegensatz zu Ausnahmen) mit - Anwendung.RegisterLogCallback, aber das macht mich unwohl, weil ich brauche, to analysieren Sie die debug-log-string, anstatt den Zugang zu der konkreten exceptions und stacktraces.

Also... was ist die richtige Sache zu tun?

InformationsquelleAutor theodox | 2013-02-25

Schreibe einen Kommentar