精华内容
下载资源
问答
  • 要求使用assert断言处理分数不合理的情况。 while True: try: score = int(input("请输入你的成绩:")) assert score >= 0 and score <= 100, "输入有误请重新输入!" if score >= 90: print('成绩为...

    输入一个学生成绩,并转换为A优秀、B良好、C合格、D不及格的形式,将学生成绩打印出来。要求使用assert断言处理分数不合理的情况。

    while True:
        try:
            score = int(input("请输入你的成绩:"))
            assert score >= 0 and score <= 100, "输入有误请重新输入!"
            if score >= 90:
                print('成绩为:A')
            elif score >= 80 and score <= 89:
                print('成绩为:B')
            elif score >= 60 and score <= 79:
                print('成绩为:C')
            else:
                print('成绩为:D,不及格!!!')
        except AssertionError as reason:
            print(reason)
    
    
    展开全文
  • 合理处理jdbc中的异常

    千次阅读 2015-07-25 17:27:11
    对于jdbc代码段里出现的异常,可以处理处理,无法处理则向上抛出 dao层代码public interface ClassDao { Integer addClass(ClassEntity classEntity); int[]addbatch(); }daoimple代码@Override public ...

    对于jdbc代码段里出现的异常,可以处理则处理,无法处理则向上抛出
    dao层代码

    public interface ClassDao {
        Integer addClass(ClassEntity classEntity);
        int[]addbatch();
    }

    daoimple代码

    @Override
        public Integer addClass(ClassEntity classEntity) {
            Connection conn=null;
            PreparedStatement preparedStatement=null;
            ResultSet resultSet=null;
            Integer id=null;
            try {
                conn=DBUtils.getConn();
                preparedStatement=conn.prepareStatement("insert into class (name,sid)values(?,?)",Statement.RETURN_GENERATED_KEYS);
                preparedStatement.setString(1, classEntity.getName());
                preparedStatement.setInt(2, 1);
                preparedStatement.executeUpdate();
                resultSet=preparedStatement.getGeneratedKeys();
                if(resultSet.next()){
                    id=resultSet.getInt(1);
                }
                return id;
            } catch (SQLException e) {
                e.printStackTrace();
                throw new DaoException(e.getMessage(),e);
            }finally{
                DBUtils.closeConnection(conn);
            }
        }

    如果imple不catch异常转而throws出去道理上是可以的,但是需要修改接口,为了原生化接口,我们可以使用非检查性异常。
    非检查性异常就是在编译期不会强制要求捕获或抛出异常,如果运行期出了异常则会抛出并且终止代码运行。
    在这里使用非检查性异常的好处在于在不污染接口的前提下,可以正确抛出异常给上层,更好的终止代码,减少不同功能代码之间的耦合。
    DaoException是自定义异常,继承了RuntimeException类。

    展开全文
  • 面对不合理的需求,我们怎么做?

    千次阅读 2015-04-23 01:22:34
    面对不合理的需求,我们怎么做? 产品人员提了一个需求,在你看来这个需求无论是展现还是功能逻辑都不合理,上线会被用户吐槽。我们会怎么做呢? 建议:根据实际情况,具体问题具体分析。 Step1:了解...

    面对不合理的需求,我们怎么做?

    产品人员提了一个需求,在你看来这个需求无论是展现还是功能逻辑都不合理,上线会被用户吐槽。我们会怎么做呢?

    建议:根据实际情况,具体问题具体分析。

    Step1:了解”不合理”需求目的和背景

    当测试人员接到一个需求进行测试时,扮演的角色不应只限定于:接受需求内容--->根据需求测试设计--->执行测试用例,可以更多地去了解需求的目的和背景。有的时候在我们看来不合理的需求,可能是有其原因和背景的。

    1.需求的快速试错。这是互联网公司普遍的做法,通过快速迭代开发出可使用的产品,然后发布给部分用户试用,收集用户的反馈,进行修改和试错。如果是基于这种因素的考虑,我们不妨配合产品、开发,快速完成功能的可用性验证并且发布。

    2.特殊情况下的攻关战。举个例子:前段时间搜狗号码通lite版上线后,被用户抱怨通讯录里导入了上千个陌生号码,进而达到不越狱也能标记骚扰电话的功能。初看到这个新闻后,我也是惊讶不已,产品居然会提出这样的需求并上线!

    但是后来的发展是这样的:竞争对手360快速跟进也推出类似功能--->搜狗公布相关专利--->搜狗联合百度360等厂家共享专利--->通过舆论向苹果施压开放相关API。看到这里,我终于明白了那个看似不合理的需求所代表的含义和目的。

    Step2:通过沟通交换看法

    这个世界是纷彩多样的,产品人员性格、做事方式也是多样的。有的产品人员比较随和,我们可以坐下来一起讨论需求不合理的地方。有的产品人员比较强势,吃软不吃硬,或者吃硬不吃软,或者软硬都不吃。

    建议:对于不同的人用不同的方式,但是要遵循的原则是:

    1.摆事实讲道理,有理有据。

    2.以达成共识为目标,以沟通交流为主要方式。

    举个例子:浏览器某个版本曾提出一个需求,当用户的系统内存占用比较高的时候,浏览器会自动进行内存清理并告知用户。这个需求有个很大的问题就是会频繁弹泡打扰用户,此前我们曾犯过类似的“问题”:浏览器以前有个假死检测功能,当页面假死的时候浏览器会自动弹泡提示假死,以避免在页面停留等待时间过长。但实际结果是用户根本不买账,反而认为搜狗浏览器相比其他浏览器容易假死。

    所以当面对内存清理这个不合理的需求时,我们的做法是:

    1.先抛出我们的观点,促使大家能够一起讨论。

    2.在沟通过程中,用之前的实例说服对方。

    3.在说服没有取得进展和答复的情况下,向上(其Leader或项目经理)抛出观点,让更多人了解、讨论这个需求潜在的风险。

    Step3:书面形式备忘结论

    测试工程师的职责之一是客观地评估产品质量和潜在风险。所以无论以上是通过了解需求目的达成的共识,还是沟通交流达成的共识,或者只是达成了妥协,建议最终通过书面的形式备忘最终的结论。



    原文链接

    如需转载该篇文章,请注明来自“搜狗测试”


    展开全文
  • Java异常处理最佳实践

    千次阅读 2019-06-30 18:38:55
    仅仅初学者很难理解,即使一些有经验的开发者也需要花费很多时间来思考如何处理异常,包括需要处理哪些异常,怎样处理等等。这也是绝大多数开发团队都会制定一些规则来规范进行异常处理的原因。而团队之间的这些...

    在 Java 中处理异常并不是一个简单的事情。不仅仅初学者很难理解,即使一些有经验的开发者也需要花费很多时间来思考如何处理异常,包括需要处理哪些异常,怎样处理等等。这也是绝大多数开发团队都会制定一些规则来规范进行异常处理的原因。而团队之间的这些规范往往是截然不同的。

    本文给出几个被很多团队使用的异常处理最佳实践。

    1. 在 finally 块中清理资源或者使用 try-with-resource 语句

    当使用类似InputStream这种需要使用后关闭的资源时,一个常见的错误就是在try块的最后关闭资源。

    public void doNotCloseResourceInTry() {
        FileInputStream inputStream = null;
        try {
            File file = new File("./tmp.txt");
            inputStream = new FileInputStream(file);
            // use the inputStream to read a file
            // do NOT do this
            inputStream.close();
        } catch (FileNotFoundException e) {
            log.error(e);
        } catch (IOException e) {
            log.error(e);
        }
    }
    
    问题就是,只有没有异常抛出的时候,这段代码才可以正常工作。try 代码块内代码会正常执行,并且资源可以正常关闭。但是,使用 try 代码块是有原因的,一般调用一个或多个可能抛出异常的方法,而且,你自己也可能会抛出一个异常,这意味着代码可能不会执行到 try 代码块的最后部分。结果就是,你并没有关闭资源。
    
    所以,你应该把清理工作的代码放到 finally 里去,或者使用 try-with-resource 特性。
    
    

    1.1 使用 finally 代码块

    与前面几行 try 代码块不同,finally 代码块总是会被执行。不管 try 代码块成功执行之后还是你在 catch 代码块中处理完异常后都会执行。因此,你可以确保你清理了所有打开的资源。

    public void closeResourceInFinally() {
        FileInputStream inputStream = null;
        try {
            File file = new File("./tmp.txt");
            inputStream = new FileInputStream(file);
            // use the inputStream to read a file
        } catch (FileNotFoundException e) {
            log.error(e);
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException e) {
                    log.error(e);
                }
            }
        }
    }
    

    1.2 Java 7 的 try-with-resource 语法

    如果你的资源实现了 AutoCloseable 接口,你可以使用这个语法。大多数的 Java 标准资源都继承了这个接口。当你在 try 子句中打开资源,资源会在 try 代码块执行后或异常处理后自动关闭。

    public void automaticallyCloseResource() {
        File file = new File("./tmp.txt");
        try (FileInputStream inputStream = new FileInputStream(file);) {
            // use the inputStream to read a file
        } catch (FileNotFoundException e) {
            log.error(e);
        } catch (IOException e) {
            log.error(e);
        }
    }
    
    

    2. 优先明确的异常

    你抛出的异常越明确越好,永远记住,你的同事或者几个月之后的你,将会调用你的方法并且处理异常。

    因此需要保证提供给他们尽可能多的信息。这样你的 API 更容易被理解。你的方法的调用者能够更好的处理异常并且避免额外的检查。

    因此,总是尝试寻找最适合你的异常事件的类,例如,抛出一个 NumberFormatException 来替换一个 IllegalArgumentException 。避免抛出一个不明确的异常。

    public void doNotDoThis() throws Exception {
        ...
    }
    public void doThis() throws NumberFormatException {
        ...
    }
    
    

    3. 对异常进行文档说明

    当在方法上声明抛出异常时,也需要进行文档说明。目的是为了给调用者提供尽可能多的信息,从而可以更好地避免或处理异常。
    在 Javadoc 添加 @throws 声明,并且描述抛出异常的场景。

    /**
    
     * This method does something extremely useful ...
    
     *
    
     * @param input
    
     * @throws MyBusinessException if ... happens
    
     */
    public void doSomething(String input) throws MyBusinessException {
        ...
    }
    
    

    4. 使用描述性消息抛出异常

    在抛出异常时,需要尽可能精确地描述问题和相关信息,这样无论是打印到日志中还是在监控工具中,都能够更容易被人阅读,从而可以更好地定位具体错误信息、错误的严重程度等。

    但这里并不是说要对错误信息长篇大论,因为本来 Exception 的类名就能够反映错误的原因,因此只需要用一到两句话描述即可。

    如果抛出一个特定的异常,它的类名很可能已经描述了这种错误。所以,你不需要提供很多额外的信息。一个很好的例子是 NumberFormatException 。当你以错误的格式提供 String 时,它将被 java.lang.Long 类的构造函数抛出。

    try {
        new Long("xyz");
    } catch (NumberFormatException e) {
        log.error(e);
    }
    
    

    5. 优先捕获最具体的异常

    大多数 IDE 都可以帮助你实现这个最佳实践。当你尝试首先捕获较不具体的异常时,它们会报告无法访问的代码块。

    但问题在于,只有匹配异常的第一个 catch 块会被执行。 因此,如果首先捕获 IllegalArgumentException ,则永远不会到达应该处理更具体的 NumberFormatException 的 catch 块,因为它是 IllegalArgumentException 的子类。

    总是优先捕获最具体的异常类,并将不太具体的 catch 块添加到列表的末尾。

    你可以在下面的代码片断中看到这样一个 try-catch 语句的例子。 第一个 catch 块处理所有 NumberFormatException 异常,第二个处理所有非 NumberFormatException 异常的IllegalArgumentException 异常。

    public void catchMostSpecificExceptionFirst() {
        try {
            doSomething("A message");
        } catch (NumberFormatException e) {
            log.error(e);
        } catch (IllegalArgumentException e) {
            log.error(e)
        }
    }
    
    

    6. 不要捕获 Throwable 类

    Throwable 是所有异常和错误的超类。你可以在 catch 子句中使用它,但是你永远不应该这样做!

    如果在 catch 子句中使用 Throwable ,它不仅会捕获所有异常,也将捕获所有的错误。JVM 抛出错误,指出不应该由应用程序处理的严重问题。 典型的例子是 OutOfMemoryError 或者 StackOverflowError 。两者都是由应用程序控制之外的情况引起的,无法处理。

    所以,最好不要捕获 Throwable ,除非你确定自己处于一种特殊的情况下能够处理错误。

    public void doNotCatchThrowable() {
        try {
            // do something
        } catch (Throwable t) {
            // don't do this!
        }
    }
    
    

    7. 不要忽略异常

    很多时候,开发者很有自信不会抛出异常,因此写了一个catch块,但是没有做任何处理或者记录日志。

    public void doNotIgnoreExceptions() {
        try {
            // do something
        } catch (NumberFormatException e) {
            // this will never happen
        }
    }
    

    但现实是经常会出现无法预料的异常,或者无法确定这里的代码未来是不是会改动(删除了阻止异常抛出的代码),而此时由于异常被捕获,使得无法拿到足够的错误信息来定位问题。

    合理的做法是至少要记录异常的信息。

    public void logAnException() {
        try {
            // do something
        } catch (NumberFormatException e) {
            log.error("This should never happen: " + e);
        }
    }
    
    

    8. 不要记录并抛出异常

    这可能是本文中最常被忽略的最佳实践。可以发现很多代码甚至类库中都会有捕获异常、记录日志并再次抛出的逻辑。如下:

    try {
        new Long("xyz");
    } catch (NumberFormatException e) {
        log.error(e);
        throw e;
    }
    

    这个处理逻辑看着是合理的。但这经常会给同一个异常输出多条日志。如下:

    17:44:28,945 ERROR TestExceptionHandling:65 - java.lang.NumberFormatException: For input string: "xyz"
    Exception in thread "main" java.lang.NumberFormatException: For input string: "xyz"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Long.parseLong(Long.java:589)
    at java.lang.Long.(Long.java:965)
    at com.stackify.example.TestExceptionHandling.logAndThrowException(TestExceptionHandling.java:63)
    at com.stackify.example.TestExceptionHandling.main(TestExceptionHandling.java:58)
    

    如上所示,后面的日志也没有附加更有用的信息。如果想要提供更加有用的信息,那么可以将异常包装为自定义异常。

    public void wrapException(String input) throws MyBusinessException {
        try {
            // do something
        } catch (NumberFormatException e) {
            throw new MyBusinessException("A message that describes the error.", e);
        }
    }
    

    因此,仅仅当想要处理异常时才去捕获,否则只需要在方法签名中声明让调用者去处理。

    9. 包装异常时不要抛弃原始的异常

    捕获标准异常并包装为自定义异常是一个很常见的做法。这样可以添加更为具体的异常信息并能够做针对的异常处理。
    在你这样做时,请确保将原始异常设置为原因(注:参考下方代码 NumberFormatException e 中的原始异常 e )。Exception 类提供了特殊的构造函数方法,它接受一个 Throwable 作为参数。否则,你将会丢失堆栈跟踪和原始异常的消息,这将会使分析导致异常的异常事件变得困难。

    public void wrapException(String input) throws MyBusinessException {
        try {
            // do something
        } catch (NumberFormatException e) {
            throw new MyBusinessException("A message that describes the error.", e);
        }
    }
    
    

    10. 不要使用异常控制程序的流程

    不应该使用异常控制应用的执行流程,例如,本应该使用if语句进行条件判断的情况下,你却使用异常处理,这是非常不好的习惯,会严重影响应用的性能。

    11. 使用标准异常

    如果使用内建的异常可以解决问题,就不要定义自己的异常。Java API 提供了上百种针对不同情况的异常类型,在开发中首先尽可能使用 Java API 提供的异常,如果标准的异常不能满足你的要求,这时候创建自己的定制异常。尽可能得使用标准异常有利于新加入的开发者看懂项目代码。

    12. 异常会影响性能

    异常处理的性能成本非常高,每个 Java 程序员在开发时都应牢记这句话。创建一个异常非常慢,抛出一个异常又会消耗1~5ms,当一个异常在应用的多个层级之间传递时,会拖累整个应用的性能。

    • 仅在异常情况下使用异常;
    • 在可恢复的异常情况下使用异常;

    尽管使用异常有利于 Java 开发,但是在应用中最好不要捕获太多的调用栈,因为在很多情况下都不需要打印调用栈就知道哪里出错了。因此,异常消息应该提供恰到好处的信息。

    13. 总结

    综上所述,当你抛出或捕获异常的时候,有很多不同的情况需要考虑,而且大部分事情都是为了改善代码的可读性或者 API 的可用性。

    异常不仅仅是一个错误控制机制,也是一个通信媒介。因此,为了和同事更好的合作,一个团队必须要制定出一个最佳实践和规则,只有这样,团队成员才能理解这些通用概念,同时在工作中使用它。

    异常处理-阿里巴巴Java开发手册

    1. 【强制】Java 类库中定义的可以通过预检查方式规避的RuntimeException异常不应该通过catch 的方式来处理,比如:NullPointerException,IndexOutOfBoundsException等等。 说明:无法通过预检查的异常除外,比如,在解析字符串形式的数字时,可能存在数字格式错误,不得不通过catch NumberFormatException来实现。 正例:if (obj != null) {…} 反例:try { obj.method(); } catch (NullPointerException e) {…}

    2. 【强制】异常不要用来做流程控制,条件控制。 说明:异常设计的初衷是解决程序运行中的各种意外情况,且异常的处理效率比条件判断方式要低很多。

    3. 【强制】catch时请分清稳定代码和非稳定代码,稳定代码指的是无论如何不会出错的代码。对于非稳定代码的catch尽可能进行区分异常类型,再做对应的异常处理。 说明:对大段代码进行try-catch,使程序无法根据不同的异常做出正确的应激反应,也不利于定位问题,这是一种不负责任的表现。 正例:用户注册的场景中,如果用户输入非法字符,或用户名称已存在,或用户输入密码过于简单,在程序上作出分门别类的判断,并提示给用户。

    4. 【强制】捕获异常是为了处理它,不要捕获了却什么都不处理而抛弃之,如果不想处理它,请将该异常抛给它的调用者。最外层的业务使用者,必须处理异常,将其转化为用户可以理解的内容。

    5. 【强制】有try块放到了事务代码中,catch异常后,如果需要回滚事务,一定要注意手动回滚事务。

    6. 【强制】finally块必须对资源对象、流对象进行关闭,有异常也要做try-catch。 说明:如果JDK7及以上,可以使用try-with-resources方式。

    7. 【强制】不要在finally块中使用return。 说明:try块中的return语句执行成功后,并不马上返回,而是继续执行finally块中的语句,如果此处存在return语句,则在此直接返回,无情丢弃掉try块中的返回点。 反例:

    private int x = 0;
    public int checkReturn() {
        try {
            // x等于1,此处不返回
            return ++x;
        } finally {
            // 返回的结果是2
            return ++x;
        }
    }
    
    1. 【强制】捕获异常与抛异常,必须是完全匹配,或者捕获异常是抛异常的父类。 说明:如果预期对方抛的是绣球,实际接到的是铅球,就会产生意外情况。

    2. 【强制】在调用RPC、二方包、或动态生成类的相关方法时,捕捉异常必须使用Throwable类来进行拦截。 说明:通过反射机制来调用方法,如果找不到方法,抛出NoSuchMethodException。什么情况会抛出NoSuchMethodError呢?二方包在类冲突时,仲裁机制可能导致引入非预期的版本使类的方法签名不匹配,或者在字节码修改框架(比如:ASM)动态创建或修改类时,修改了相应的方法签名。这些情况,即使代码编译期是正确的,但在代码运行期时,会抛出NoSuchMethodError。

    3. 【推荐】方法的返回值可以为null,不强制返回空集合,或者空对象等,必须添加注释充分说明什么情况下会返回null值。 说明:本手册明确防止NPE是调用者的责任。即使被调用方法返回空集合或者空对象,对调用者来说,也并非高枕无忧,必须考虑到远程调用失败、序列化失败、运行时异常等场景返回null的情况。

    4. 【推荐】防止NPE,是程序员的基本修养,注意NPE产生的场景: 1) 返回类型为基本数据类型,return包装数据类型的对象时,自动拆箱有可能产生NPE。 反例:public int f() { return Integer对象}, 如果为null,自动解箱抛NPE。 2) 数据库的查询结果可能为null。 3) 集合里的元素即使isNotEmpty,取出的数据元素也可能为null。 4) 远程调用返回对象时,一律要求进行空指针判断,防止NPE。 5) 对于Session中获取的数据,建议进行NPE检查,避免空指针。 6) 级联调用obj.getA().getB().getC();一连串调用,易产生NPE。
      正例:使用JDK8的Optional类来防止NPE问题。

    5. 【推荐】定义时区分unchecked / checked 异常,避免直接抛出new RuntimeException(),更不允许抛出Exception或者Throwable,应使用有业务含义的自定义异常。推荐业界已定义过的自定义异常,如:DAOException / ServiceException等。

    6. 【参考】对于公司外的http/api开放接口必须使用“错误码”;而应用内部推荐异常抛出;跨应用间RPC调用优先考虑使用Result方式,封装isSuccess()方法、“错误码”、“错误简短信息”。 说明:关于RPC方法返回方式使用Result方式的理由: 1)使用抛异常返回方式,调用方如果没有捕获到就会产生运行时错误。 2)如果不加栈信息,只是new自定义异常,加入自己的理解的error message,对于调用端解决问题的帮助不会太多。如果加了栈信息,在频繁调用出错的情况下,数据序列化和传输的性能损耗也是问题。

    7. 【参考】避免出现重复的代码(Don’t Repeat Yourself),即DRY原则。 说明:随意复制和粘贴代码,必然会导致代码的重复,在以后需要修改时,需要修改所有的副本,容易遗漏。必要时抽取共性方法,或者抽象公共类,甚至是组件化。 正例:一个类中有多个public方法,都需要进行数行相同的参数校验操作,这个时候请抽取:
      private boolean checkParam(DTO dto) {…}

    展开全文
  • 效度达标的处理方式

    千次阅读 2018-06-06 20:59:11
    如果量表设计不合理,基于此量表的数据也会受到置疑。接下来阐述效度分析(上一篇文章阐述信度分析),以及效度分析时的操作方法,如何解决出现的问题等。本书中使用的较多内容参考于“问卷数据分析-破解SPSS的六类...
  • 平衡样本处理方法

    千次阅读 2018-01-14 12:00:40
    在分类中如何处理训练集中平衡问题   在很多机器学习任务中,训练集中可能会存在某个或某些类别下的样本数远大于另一些类别下的样本数目。即类别平衡,为了使得学习达到更好的效果,因此需要解决该类别平衡...
  • 自然语言处理中的N-Gram模型详解

    万次阅读 多人点赞 2016-04-29 21:32:23
    N-Gram(有时也称为N元模型)是自然语言处理中一个非常重要的概念,通常在NLP中,人们基于一定的语料库,可以利用N-Gram来预计或者评估一个句子是否合理。另外一方面,N-Gram的另外一个作用是用来评估两个字符串之间...
  • 在分类中如何处理训练集中平衡问题

    万次阅读 多人点赞 2015-10-25 23:09:39
    在分类中如何处理训练集中平衡问题,在很多机器学习任务中,训练集中可能会存在某个或某些类别下的样本数远大于另一些类别下的样本数目。即类别平衡,为了使得学习达到更好的效果,因此需要解决该类别平衡问题...
  • AlertDialog点击按钮后对话框消失的处理方法

    万次阅读 多人点赞 2016-04-13 17:35:38
    我们在使用AlertDialog时,无论点击“确定”(PositiveButton)还是“取消”(NegativeButton),对话框都会消失,这其实是不合理的。如果遇到这种情况:AlertDialog里面有一个文本框,要求用户必须输入内容,但如果用户...
  • Visual Basic快捷教程——异常处理机制

    千次阅读 多人点赞 2016-01-23 19:12:05
    所谓“异常(Exception)”是指程序运行时所发生的正常的情况。...本文介绍Visual Basic中提供的异常处理机制,主要包括捕捉异常的 Try... Catch... Finally 结构和自行抛出异常的Throw方法等内容
  • 如何处理不能复现的bug?

    千次阅读 2019-08-31 17:09:27
    软件测试工作中常常会遇到能复现的bug,遇到这种情况其实很正常,但是很多测试新手都按照自己的想法处理,没有提交bug,或者匆匆关闭bug。线上出现问题,就只能自己背锅了。 今天我们就说说,遇到这种情况,...
  • 如何处理训练样本均衡的问题

    万次阅读 2017-06-03 22:14:22
    在分类中如何处理训练集中平衡问题   在很多机器学习任务中,训练集中可能会存在某个或某些类别下的样本数远大于另一些类别下的样本数目。即类别平衡,为了使得学习达到更好的效果,因此需要解决该类别...
  • 在训练机器学习模型的过程中,源数据常常符合我们的要求。大量繁杂的数据,需要按照我们的需求进行过滤。拿到我们想要的数据格式,并建立能够反映数据间逻辑结构的数据表达形式。  最近就拿到一个小任务,需要...
  • Java异常处理终结篇——如何进行Java异常处理设计

    万次阅读 多人点赞 2014-02-28 15:08:57
    使用Java异常的人很多,但能合理使用的却多,Java异常处理设计是一个冷门的话题,但好的异常设计会让程序有质的变化,所以本文从各个方面分析便总结了,在Java程序中,如何进行异常设计。
  • SCRUM是一种敏捷开发模式,源于橄榄球术语,有一些...Sprint计划会议确定本次冲刺任务列表(Sprint backlog),原则上一次冲刺内,拒绝需求变动,scrum master有责任保护team受需求变更的影响。关于Sprint执行期间
  • 谈谈MATLAB大数据处理

    万次阅读 2016-02-23 16:19:51
    摘要: 今天多数的大数据方案都是依托Hadoop环境来做结构化和非结构化数据处理,如何把自己的Hadoop算法快速部署到实际的生产环境当中去,对很多企业的大数据部署也提出了挑战。CSDN专访MathWorks中国资深技术专家...
  • 而中断为异步事件,虽然使用当前被打断进程的内核栈、处于被打断进程的上下文之中,但是和当前被中断进程没有必然的关系,同时中断处理程序和外部的一个具体设备相对应,这就要求中断处理程序能快速
  • 图像处理职位面试题汇总(2)

    千次阅读 2013-11-02 21:38:50
    已知两幅拼接好的图像,两幅图像在几何关系配准之后,但两图之间存在明显灰度差别跳变,请设计一个算法对图像进行处理,让两幅图之间的灰度看不出跳变,形成自然过渡。请估算一下CNTOWER电视塔的质量。下面玩一个...
  • Qt Quick 图像处理实例之美图秀秀(附源码下载)

    万次阅读 多人点赞 2014-07-16 12:25:07
    在《Qt Quick 之 QML 与 C++ 混合编程详解》一文中我们讲解了 QML 与 C++ 混合编程的方方面面的内容,这次我们通过一个图像处理应用,再来看一下 QML 与 C++ 混合编程的威力,同时也为诸君揭开美图秀秀、魔拍之类的...
  • 深度学习与自然语言处理(1)_斯坦福cs224d Lecture 1

    万次阅读 多人点赞 2016-06-02 16:00:08
    这是本课程的第一节,我们会先介绍自然语言处理(NLP)的概念和NLP现在所面对问题;然后开始讨论用数学向量代表自然语言词组的设想。最后我们会讨论现行的词向量构造方法。
  • 数据分析中的缺失值处理

    千次阅读 2018-06-11 10:06:50
    没有高质量的数据,就没有高质量的数据挖掘...这时如果手工处理非常低效,如果舍弃缺失记录,则会丢失大量信息,使完全观测数据与完全观测数据间产生系统差异,对这样的数据进行分析,你很可能会得出错误的结论。
  • ​前言:经验介绍,这里讲代码只讲思路 本人从事数据分析师这项工作11个年头,从事的数据的岗位有很多,现在很多的数据分析师、算法工程师之类的岗位都是从Java开发转过来的,而我是从刚工作就做这行业,现在转的...
  • Java异常处理扫盲贴

    千次阅读 2019-06-18 08:00:00
    受检查异常为编译器不要求强制处理的异常,检查异常则是编译器要求必须处置的异常。 异常处理关键字 Java异常处理涉及到五个关键字,分别是:try、catch、finally、throw、throws。 try: 用于监听。...
  • 数字音频分析和处理系统

    万次阅读 2018-01-04 22:47:15
    一、设计要求: 设计一个基于MATLAB的数字音频分析与处理系统,能够实现对数字音频的测试分析与处理要求: 1) 输入语音信号源为实际环境采集语音; 2)至少实现1种音效测试分析功能(频率响应,瀑布频谱图...
  • java(3)-深入理解java异常处理机制

    万次阅读 多人点赞 2011-01-20 18:44:00
    1. 引子 try…catch…finally恐怕是...信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。 pa
  • C#异常处理总结

    万次阅读 多人点赞 2017-10-12 23:27:33
    } } } 结果如图: 这里写图片描述 异常处理原则和建议 在实际的开发中,异常到底需要怎么写,还是和系统的稳定性和容错性有一定要求的。 要捕获具体的异常 在捕获异常的时候,我们经常习惯性写catch(Exception ex) ...
  • 机器学习中平衡数据的处理方式

    万次阅读 2018-08-24 10:44:56
    平衡数据的场景出现在互联网应用的方方面面,如搜索引擎的点击预测(点击的网页往往占据很小的比例),电子商务领域的商品推荐(推荐的商品被购买...顾名思义即我们的数据集样本类别极均衡,以二分类问题为例,...
  • 语音信号采集与处理

    千次阅读 2020-11-09 15:39:49
    音频信号的采集与处理已经广泛应用于材料无损检测、语音识别、噪声抑制等工程领域。对采集音频信号并进行分析处理的技术和方法进行探讨,具有一定的意义。 1 绪论 1.1 课题的背景与意义 通过语音传递信息是人类最...
  • 此外对缺失值的处理一定要具体问题具体分析,因为缺失值并意味着数据缺失,缺失本身也是包含信息的,所以需要根据不同的场景下的缺失值进行合理填充。 目前缺失值的类型,含有缺失值的变量被称为完全...
  • 图像处理:中值滤波&均值滤波

    万次阅读 多人点赞 2018-08-16 10:57:19
    而对滤波处理要求也有两条:一是能损坏图像的轮廓及边缘等重要信息;二是使图像清晰视觉效果好。 平滑滤波是低频增强的空间域滤波技术。它的目的有两类:一类是模糊;另一类是消除噪音。 空间域的平滑滤波一般...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 318,871
精华内容 127,548
关键字:

不合理要求怎么处理