重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这里写了
创新互联是一家集网站建设,泰兴企业网站建设,泰兴品牌网站建设,网站定制,泰兴网站建设报价,网络营销,网络优化,泰兴网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
if(length=0||width=0)
{
throw new NoValueException("数值非法");
}
public class Student {
private Integer age;
private Integer sex;
public Integer getAge() {
return age;
}
public void setAge(Integer age) throws Exception{
if(age 0 || age 100)
throw new Exception("年龄不在合理范围内");
this.age = age;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) throws Exception{
if(!(sex == 0 sex == 1))
throw new Exception("性别不是男女");
this.sex = sex;
}
public Student(Integer age, Integer sex) throws Exception{
super();
if(age 0 || age 100)
throw new Exception("年龄不在合理范围内");
if(!(sex == 0 sex == 1))
throw new Exception("性别不是男女");
this.age = age;
this.sex = sex;
}
public Student() {
super();
}
public static void main(String[] args) {
try {
Student student = new Student(101,2);
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
}
package mp3;
/**
* 歌曲类 。这里重写equals方法定义一首歌(不是hash结构,所以不用重写hashCode())
*/
public class Mp3 {
// 歌曲名称
private String name;
// 歌曲时间
private double time;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getTime() {
return time;
}
public void setTime(double time) {
this.time = time;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Mp3 other = (Mp3) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (Double.doubleToLongBits(time) != Double.doubleToLongBits(other.time))
return false;
return true;
}
public Mp3(String name, double time) {
super();
this.name = name;
this.time = time;
}
}
package mp3;
import java.util.List;
/**
* 播放器类
* 构造器有三个 : 1、无歌曲播放器。2、单曲播放器。3、列表播放器
* 提供三个方法 : 1、播放单曲。2、播放下一曲。3、播放上一曲
*/
public class PlayTool {
// 播放列表
ListMp3 mp3Lst;
// 当前播放Mp3
private Mp3 currPlaymp3;
// 列表播放
public PlayTool(ListMp3 mp3Lst) {
super();
this.mp3Lst = mp3Lst;
}
// 创建无曲目构造器
public PlayTool() {
super();
}
// 单曲播放
public PlayTool(Mp3 currPlaymp3) {
super();
this.currPlaymp3 = currPlaymp3;
}
public Mp3 getCurrPlaymp3() {
return currPlaymp3;
}
public void setCurrPlaymp3(Mp3 currPlaymp3) {
this.currPlaymp3 = currPlaymp3;
}
public ListMp3 getMp3Lst() {
return mp3Lst;
}
public void setMp3Lst(ListMp3 mp3Lst) {
this.mp3Lst = mp3Lst;
}
/**
* 播放曲目
*
* @param mp3
*/
public void play(Mp3 mp3)throws Exception{
this.setCurrPlaymp3(mp3);
System.out.println("正在播放歌曲" + mp3.getName());
//加入睡眠,简单模拟播放时长
Thread.sleep((long) (mp3.getTime()*500));
}
/**
* 播放曲目
*
* @param mp3
*/
public void play()throws Exception{
if (mp3Lst == null || mp3Lst.size() == 0) {
throw new Mp3Exception("无法获取歌单列表");
}else{
play(mp3Lst.get(0));
}
}
/**
* 播放下一首
*/
public void playNext() throws Exception {
if (mp3Lst == null || mp3Lst.size() == 0) {
throw new Mp3Exception("无法获取歌单列表");
} else {
/** 如果当前没有正在播放的歌曲,那么默认播放列表中第一首 */
if (currPlaymp3 == null) {
play(mp3Lst.get(0));
} else {
int indexOf = mp3Lst.indexOf(currPlaymp3);
indexOf++;
if (indexOf == mp3Lst.size()) {
throw new Mp3Exception("已经是最后一首歌曲,没有下一首");
} else {
play(mp3Lst.get(indexOf));
}
}
}
}
/**
* 播放上一首
*/
public void playLast() throws Exception {
if (mp3Lst == null || mp3Lst.size() == 0) {
throw new Mp3Exception("无法获取歌单列表");
} else {
/** 如果当前没有正在播放的歌曲,那么默认播放列表中第一首 */
if (currPlaymp3 == null) {
play(mp3Lst.get(0));
} else {
int indexOf = mp3Lst.indexOf(currPlaymp3);
indexOf--;
if (indexOf 0) {
throw new Mp3Exception("歌单中第一首歌曲,没有上一首");
} else {
play(mp3Lst.get(indexOf));
}
}
}
}
}
package mp3;
/**
* 自定义Mp3Exception
*/
public class Mp3Exception extends Exception {
public Mp3Exception() {
super();
}
public Mp3Exception(String message, Throwable cause) {
super(message, cause);
}
public Mp3Exception(Throwable cause) {
super(cause);
}
public Mp3Exception(String message) {
super(message);
}
}
package mp3;
import java.util.ArrayList;
import java.util.List;
/**
* 测试类
* @author remind
*
*/
public class Test {
//歌单列表
static ListMp3 list = new ArrayListMp3();
//静态代码块填充歌曲
static{
list.add(new Mp3("小步舞曲-陈绮贞",3.53));
list.add(new Mp3("城市稻草人-曹芳",2));
list.add(new Mp3("再见-孝琳",3));
list.add(new Mp3("樱花飞舞时-中岛美嘉",4.2));
}
public static void main(String[] args) {
try {
/**
* 正常播放
*/
/*创建播放器*/
PlayTool playTool = new PlayTool(list);
//开始播放歌曲
playTool.play(new Mp3("小步舞曲-陈绮贞",3.53));
//播放下一曲
playTool.playNext();
/**
* 异常播放,无上一曲
*/
playTool.play(new Mp3("小步舞曲-陈绮贞",3.53));
playTool.playLast();
/**
* 异常播放,无下一曲
*/
playTool.play(new Mp3("樱花飞舞时-中岛美嘉",4.2));
playTool.playNext();
} catch (Exception e) {
e.printStackTrace();
}
}
}
main()方法里的输出语句是一定会执行的。
捕捉到异常就会执行catch。
FileReader f1=new FileReader("D:\\mytest.txt");报错是因为FileReader类的够着方法是这样声明的public FileReader(File file) throws FileNotFoundException必须捕获异常或者声明抛出异常
class
MyException
extends
Exception
//自定义的异常类
继承Exception类
{
private
String
exceptionName;
//定义一个私有变量,用来为自定义异常
public
MyException(){}
//创建一个无参数的构造函数
public
MyException(String
exceptionName){
//创建一个有参数的构造函数,传入的参数为前面定义的异常名称
this.exceptionName=exceptionName;
}
public
String
getExceptionName(){
//定义一个方法,提供给外部来获取私有变量
return
this.exceptionName;
}
public
static
void
main(String
[]
args){
try{
System.out.println("自定义的异常类对象");
throw
new
MyException("自定义的异常");//抛一个自定义的异常类对象,传入的参数就是给控制台看的异常
}catch(MyException
e){
System.out.println("异常信息:"+e.getExceptionName());
}
}
}
我已经尽力你……你懂的!
1 程序中的异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发异常。
Java异常类层次结构图:
使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需继承Exception类即可。
在程序中使用自定义异常类,大体可分为以下几个步骤。
(1)创建自定义异常类。
(2)在方法中通过throw关键字抛出异常对象。
(3)如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。
(4)在出现异常方法的调用者中捕获并处理异常。
创建自定义异常类
public class MyException extends Exception {
private static final long serialVersionUID = 1L;
public MyException(){
super();
}
public MyException(String msg){
super(msg);
}
}
使用的话就不演示了 如果你已经研究到了自定义异常 那么我相信你也一定会使用了
如果不会使用 建议学会使用后再来看这篇文章