Repository: apache/shardingsphere
Issue: Throw NullPointerException in InsertColumnsClauseParser.

For English only, other languages we will close it directly.

Please answer these questions before submitting your issue. Thanks!

### Which version of Sharding-Sphere do you using?
3.0.0.M2
### Expected behavior
If there is no table to be queried, ss should give information that this logic table does not exist.
### Actual behavior
If there is no table to be queried, ss throw NullPointerException.
### Reason analyze
If there is no table to be queried, ss will get null by shardingMetaData.getTableMetaDataMap().get(tableName).
### Steps to reproduce the behavior
insert into ttttt values(1,2); (ttttt does not exist in database.)
### For bug report, please *MUST* provide the reproduce example codes (such as a github link).


Changed files:
sharding-proxy/src/main/java/io/shardingsphere/proxy/frontend/mysql/MySQLFrontendHandler.java
sharding-core/src/main/java/io/shardingsphere/core/parsing/parser/clause/InsertColumnsClauseParser.java

diff --git a/sharding-core/src/main/java/io/shardingsphere/core/parsing/parser/clause/InsertColumnsClauseParser.java b/sharding-core/src/main/java/io/shardingsphere/core/parsing/parser/clause/InsertColumnsClauseParser.java
index e285218ff1c..4a300b38567 100644
--- a/sharding-core/src/main/java/io/shardingsphere/core/parsing/parser/clause/InsertColumnsClauseParser.java
+++ b/sharding-core/src/main/java/io/shardingsphere/core/parsing/parser/clause/InsertColumnsClauseParser.java
@@ -43,6 +43,7 @@ import java.util.LinkedList;
  *
  * @author zhangliang
  * @author maxiaoguang
+ * @author panjuan
  */
 public final class InsertColumnsClauseParser implements SQLClauseParser {
     
@@ -92,7 +93,7 @@ public final class InsertColumnsClauseParser implements SQLClauseParser {
             insertStatement.setColumnsListLastPosition(lexerEngine.getCurrentToken().getEndPosition() - lexerEngine.getCurrentToken().getLiterals().length());
             lexerEngine.nextToken();
         } else {
-            Collection<String> columnNames = shardingMetaData.getTableMetaDataMap().get(tableName).getAllColumnNames();
+            Collection<String> columnNames = shardingMetaData.getTableMetaDataMap().containsKey(tableName) ? shardingMetaData.getTableMetaDataMap().get(tableName).getAllColumnNames() : new LinkedList<String>();
             int beginPosition = lexerEngine.getCurrentToken().getEndPosition() - lexerEngine.getCurrentToken().getLiterals().length() - 1;
             insertStatement.getSqlTokens().add(new InsertColumnToken(beginPosition, "("));
             ItemsToken columnsToken = new ItemsToken(beginPosition);
diff --git a/sharding-proxy/src/main/java/io/shardingsphere/proxy/frontend/mysql/MySQLFrontendHandler.java b/sharding-proxy/src/main/java/io/shardingsphere/proxy/frontend/mysql/MySQLFrontendHandler.java
index b2832f9c86b..fbb78f48acf 100644
--- a/sharding-proxy/src/main/java/io/shardingsphere/proxy/frontend/mysql/MySQLFrontendHandler.java
+++ b/sharding-proxy/src/main/java/io/shardingsphere/proxy/frontend/mysql/MySQLFrontendHandler.java
@@ -102,6 +102,8 @@ public final class MySQLFrontendHandler extends FrontendHandler {
                 }
             } catch (final SQLException ex) {
                 context.writeAndFlush(new ErrPacket(++currentSequenceId, ex));
+            } catch (final Exception ex) {
+                context.writeAndFlush(new ErrPacket(1, ServerErrorCode.ER_STD_UNKNOWN_EXCEPTION, ex.getMessage()));
             }
         }