fix: 捕获解析YAML时发生的错误
This commit is contained in:
		@@ -10,7 +10,7 @@
 | 
				
			|||||||
            <div class="control-zone">
 | 
					            <div class="control-zone">
 | 
				
			||||||
                <Space Size="@("0")">
 | 
					                <Space Size="@("0")">
 | 
				
			||||||
                    <SpaceItem>
 | 
					                    <SpaceItem>
 | 
				
			||||||
                        <Button Type="@ButtonType.Text">
 | 
					                        <Button Type="@ButtonType.Text" OnClick="@QuitButtontClicked">
 | 
				
			||||||
                            退出
 | 
					                            退出
 | 
				
			||||||
                        </Button>
 | 
					                        </Button>
 | 
				
			||||||
                    </SpaceItem>
 | 
					                    </SpaceItem>
 | 
				
			||||||
@@ -28,7 +28,9 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            <div class="logging-zone">
 | 
					            <div class="logging-zone">
 | 
				
			||||||
                <AntList TItem="@string" DataSource="@_logs" Split="@false" @ref="@_logList">
 | 
					                <AntList TItem="@string" DataSource="@_logs" Split="@false" @ref="@_logList">
 | 
				
			||||||
                    <p style="margin-bottom: 0">@context</p>
 | 
					                    <ListItem class="logging-item">
 | 
				
			||||||
 | 
					                        <p>@context</p>
 | 
				
			||||||
 | 
					                    </ListItem>
 | 
				
			||||||
                </AntList>
 | 
					                </AntList>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
@@ -84,10 +86,14 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private void QuitButtontClicked()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        Navigation.NavigateTo("/", replace: true);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private void Log(string message)
 | 
					    private void Log(string message)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        _logs.Add($"{DateTime.Now:HH:mm:ss} {message}");
 | 
					        _logs.Add($"{DateTime.Now:HH:mm:ss} {message}");
 | 
				
			||||||
        StateHasChanged();
 | 
					        StateHasChanged();
 | 
				
			||||||
    }   
 | 
					    }   
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -10,4 +10,9 @@
 | 
				
			|||||||
.logging-zone {
 | 
					.logging-zone {
 | 
				
			||||||
    height: 15%;
 | 
					    height: 15%;
 | 
				
			||||||
    overflow-y: auto;
 | 
					    overflow-y: auto;
 | 
				
			||||||
 | 
					    margin-bottom: 5px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.logging-item {
 | 
				
			||||||
 | 
					    padding: 0 0 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -11,6 +11,7 @@
 | 
				
			|||||||
      "dotnetRunMessages": true,
 | 
					      "dotnetRunMessages": true,
 | 
				
			||||||
      "launchBrowser": false,
 | 
					      "launchBrowser": false,
 | 
				
			||||||
      "applicationUrl": "http://localhost:5163",
 | 
					      "applicationUrl": "http://localhost:5163",
 | 
				
			||||||
 | 
					      "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
 | 
				
			||||||
      "environmentVariables": {
 | 
					      "environmentVariables": {
 | 
				
			||||||
        "ASPNETCORE_ENVIRONMENT": "Development"
 | 
					        "ASPNETCORE_ENVIRONMENT": "Development"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
using Katheryne.Abstractions;
 | 
					using Katheryne.Abstractions;
 | 
				
			||||||
 | 
					using Katheryne.Exceptions;
 | 
				
			||||||
using Katheryne.Models;
 | 
					using Katheryne.Models;
 | 
				
			||||||
using Microsoft.Extensions.Logging;
 | 
					using Microsoft.Extensions.Logging;
 | 
				
			||||||
using YamlDotNet.Serialization;
 | 
					using YamlDotNet.Serialization;
 | 
				
			||||||
@@ -27,13 +28,26 @@ public class KatheryneChatRobotFactory
 | 
				
			|||||||
        _defaultChatRobot = defaultChatRobot;
 | 
					        _defaultChatRobot = defaultChatRobot;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ķ<EFBFBD>
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    /// <param name="grammarText"><3E>ķ<EFBFBD><C4B7>ַ<EFBFBD><D6B7><EFBFBD></param>
 | 
				
			||||||
 | 
					    /// <exception cref="GrammarException"><3E><><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>׳<EFBFBD><D7B3><EFBFBD><EFBFBD>쳣</exception>
 | 
				
			||||||
    public void SetGrammar(string grammarText)
 | 
					    public void SetGrammar(string grammarText)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        _factoryLogger.LogInformation("Receive new grammar: {}.", grammarText);
 | 
					        _factoryLogger.LogInformation("Receive new grammar: {}.", grammarText);
 | 
				
			||||||
        GrammarText = grammarText;
 | 
					        GrammarText = grammarText;
 | 
				
			||||||
        IDeserializer deserializer = _deserializerFactory.GetDeserializer();
 | 
					        IDeserializer deserializer = _deserializerFactory.GetDeserializer();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        LexicalModel model = deserializer.Deserialize<LexicalModel>(grammarText);
 | 
					        LexicalModel model;
 | 
				
			||||||
 | 
					        try
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            model = deserializer.Deserialize<LexicalModel>(grammarText);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        catch (Exception ex)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            throw new GrammarException("Failed to parse lexical model.", ex);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        _grammar = new Grammar(new GrammarTree(model), model.RobotName, model.BeginStageName);
 | 
					        _grammar = new Grammar(new GrammarTree(model), model.RobotName, model.BeginStageName);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user