diff --git a/config/condition_router_config.go b/config/condition_router_config.go
index a1b69c3c0c9faa5e354a0a8686fe5ae2c0283a09..20d096a37399480f33253a6e461cb013a8797599 100644
--- a/config/condition_router_config.go
+++ b/config/condition_router_config.go
@@ -39,9 +39,9 @@ func RouterInit(confRouterFile string) error {
 		if e == nil {
 			url := r.URL()
 			directory.AddRouterURLSet(&url)
-			break
+			return nil
 		}
 		logger.Warnf("router config type %s create fail \n", k)
 	}
-	return nil
+	return perrors.Errorf("no file router exists for parse %s , implement router.FIleRouterFactory please.", confRouterFile)
 }
diff --git a/config/condition_router_config_test.go b/config/condition_router_config_test.go
index 7370fd4c309f57937bb9071be549c092dcfb2f79..99449da13bcaed1dfb02e0d8c7fabc4ca533a7eb 100644
--- a/config/condition_router_config_test.go
+++ b/config/condition_router_config_test.go
@@ -18,6 +18,7 @@
 package config
 
 import (
+	"github.com/apache/dubbo-go/cluster/directory"
 	"strings"
 	"testing"
 )
@@ -26,7 +27,12 @@ import (
 	"github.com/stretchr/testify/assert"
 )
 
-const testyml = "testdata/router_config.yml"
+import (
+	_ "github.com/apache/dubbo-go/cluster/router/condition"
+)
+
+const testYML = "testdata/router_config.yml"
+const errorTestYML = "testdata/router_config_error.yml"
 
 func TestString(t *testing.T) {
 
@@ -47,3 +53,15 @@ func TestString(t *testing.T) {
 	assert.Equal(t, n2[0], "a1")
 	assert.Equal(t, n2[1], "")
 }
+
+func TestRouterInit(t *testing.T) {
+	errPro := RouterInit(errorTestYML)
+	assert.Error(t, errPro)
+
+	assert.Equal(t, 0, directory.GetRouterURLSet().Size())
+
+	errPro = RouterInit(testYML)
+	assert.NoError(t, errPro)
+
+	assert.Equal(t, 1, directory.GetRouterURLSet().Size())
+}