KivaKit Extrait #11

Jan 04 2023
En savoir plus sur KivaKit https://state-of-the-art.org/https://www.
Code

package com.telenav.kivakit.snippets;

import com.telenav.kivakit.core.language.trait.TryTrait;
import com.telenav.kivakit.core.messaging.listeners.MessageList;

import static com.telenav.kivakit.core.collections.list.StringList.stringList;

public class Snippet11 extends BaseSnippet implements TryTrait
{
    public static void main(String[] args)
    {
        new Snippet11().run();
    }

    @Override
    protected Object onSnippet()
    {
        var issues = new MessageList();
        var results = stringList();

        issues.listenTo(this);

        // 1, 2
        results.add("x = " + tryCatch(this::x));
        results.add("y = " + tryCatch(this::y));

        // 3, 4
        results.add("x = " + tryCatchDefault(this::x, -1));
        results.add("y = " + tryCatchDefault(this::y, -1));

        // 5, 6
        results.add("x = " + tryCatch(this::x, "Failed to x()"));
        results.add("y = " + tryCatch(this::y, "Failed to y()"));

        // 7
        results.addAll(issues.formatted());
        issues.clear();

        // 8
        results.add("x = " + tryCatchThrow(this::x, "Failed to x(): rethrowing"));
        try
        {
            results.add("y = " + tryCatchThrow(this::y, "Failed to y(): rethrowing"));
        }
        catch (Exception e)
        {
            // 9
            results.add("Caught rethrown exception");
        }

        // 10
        results.addAll(issues.formatted());
        issues.clear();

        return results.numbered().titledBox("Results");
    }

    private int x()
    {
        return 3;
    }

    private int y()
    {
        throw new IllegalStateException("Error in y()");
    }
}



      
                
Output
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ Results ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┋ 1. x = 3 ┋ ┋ 2. y = null ┋ ┋ 3. x = 3 ┋ ┋ 4. y = -1 ┋ ┋ 5. x = 3 ┋ ┋ 6. y = null ┋ ┋ 7. Failed to y(): Error in y() ┋ ┋ Exception in thread "main"java.lang.IllegalStateException: Error in y() ┋ ┋ at com.telenav.kivakit.snippets.Snippet11.y(Snippet11.java:66) ┋ ┋ at com.telenav.kivakit.core.language.trait.TryTrait.tryCatch(TryTrait.java:67) ┋ ┋ at com.telenav.kivakit.snippets.Snippet11.onSnippet(Snippet11.java:33) ┋ ┋ at com.telenav.kivakit.snippets.BaseSnippet.run(BaseSnippet.java:10) ┋ ┋ at com.telenav.kivakit.snippets.Snippet11.main(Snippet11.java:12) ┋ ┋ 8. x = 3 ┋ ┋ 9. Caught rethrown exception ┋ ┋ 10. Failed to y(): rethrowing: Error in y() ┋ ┋ Exception in thread "main"java.lang.IllegalStateException: Error in y() ┋ ┋ at com.telenav.kivakit.snippets.Snippet11.y(Snippet11.java:66) ┋ ┋ at com.telenav.kivakit.core.language.trait.TryTrait.tryCatchThrow(TryTrait.java:11 ┋ ┋ 2) ┋ ┋ at com.telenav.kivakit.snippets.Snippet11.onSnippet(Snippet11.java:44) ┋ ┋ at com.telenav.kivakit.snippets.BaseSnippet.run(BaseSnippet.java:10) ┋ ┋ at com.telenav.kivakit.snippets.Snippet11.main(Snippet11.java:12) ┋ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

En savoir plus sur KivaKit

https://state-of-the-art.org/
https://www.kivakit.org/

Articles Liés

Extrait KivaKit #1
Extrait KivaKit #2
Extrait KivaKit #3

Six raisons pour lesquelles la plupart des Java que vous avez vus ne sont pas du vrai Java
Pourquoi un hôte n'est pas une chaîne et un port n'est pas un entier
Un entier n'est pas un compte
Tout est diviser pour régner